Yilmaz Kiymaz是InnoGames的资深Unity游戏开发者,他将分享一些小技巧来帮助我们加快开发速度,提升工作效率。包括:菜单项快捷键、自动化工作,流程的方法和缩短计算时间的方法。
编辑器中的快捷键
Unity编辑器中的一些重要快捷键包括:
- 创建新游戏对象:Cmd/Ctrl + Shift + N
- 启用游戏对象:Alt + Shift + A
- 添加组件:Cmd/Ctrl + Shift + A
了解完整的快捷键列表:https://docs.unity3d.com/Manual/UnityHotkeys.html
了解项目窗口额外的快捷键:https://docs.unity3d.com/Manual/ProjectView.html
菜单项的快捷方式
如果菜单项没有快捷方式,我们可以使用EditorApplication.ExecuteMenuItem进行添加。
我们也可以创建自定义菜单项,了解如何添加自定义菜单:https://unity3d.com/learn/tutorials/topics/interface-essentials/unity-ed...
自动化处理
AssetPostprocessor:当我们向Unity导入资源时,有很多可以修改的导入设置,它们会影响游戏的性能。因此选择正确的设置很重要。AssetPostprocessor API允许我们在导入资源之前或之后,关联导入管线并运行脚本。
ISerializationCallbackReceiver:序列化和反序列化二个列表后,我们会担心列表是否互相匹配。此时可以使用字典和序列化回调来无缝处理该过程。
EditorApplication类回调非常重要,因为它们能改变Unity的行为,并修改编辑器为理想的工作方式。
OnValidate():每次修改组件数值时,该函数都会在组件上调用。它会验证数值范围是否正确,并实现其它自定义功能。
在构建项目时,如果处于Xcode中的构建后期处理过程,或要修改部分文件,PostProcessBuildAttribute则会非常有用,我们能给它加入可用操作来改进处理时间。
减少计算时间
我们可以使用缓存服务器Cache Server来避免纹理导入时间,或者在设置中选择“Compress assets on import”来延迟纹理导入时间。大多数情况下,我们在打开新项目时不需要查看压缩版本的资源。
通过把代码放入Plugins文件夹,我们可以加快计算速度,虽然这个方法比较老,但它仍是一个好方法。Plugins文件夹的代码会编译到不同的程序集,如果修改了游戏代码,但该代码不在Plugins文件夹中,那么Plugins文件夹中的代码不会被编译,因此会减少重新编译的时间。
我们也可以使用DLL文件,我们可以使用程序集定义文件来指定哪个脚本应该在哪个程序集中。然后,修改的脚本只会和该程序集内的其它脚本一起编译。
我们也可以使用增量式编译器Incremental Compiler。增量式编译器Incremental Compiler由微软的Roslyn开源编译器项目开发,旨在大幅加快C#代码的迭代过程,并让我们使用C# 7.2的最新特性。
我们可以使用CompileTimeTracker工具来记录计算时间。该工具可以记录项目脚本重新编译时间的变化。它会显示当前编译时间的日志,对比其它的编译时间,并且提供把日志导出为CSV文件。
最后,我们可以尝试其它脚本编程方法。基于该函数库,我们可以用本地代码编写Unity脚本:支持C、C++和汇编代码。虽然该功能不适用于所有项目,但是大型项目的团队合作会考虑使用它,因为开发人员可能不习惯使用C++代码和管理内存。
缓存服务器:https://github.com/Unity-Technologies/unity-cache-server
程序集定义文件:https://docs.unity3d.com/Manual/ScriptCompilationAssemblyDefinitionFiles...
CompileTimeTracker:https://github.com/DarrenTsung/DTCompileTimeTracker
在Unity中快速获得新功能
Unity Package Manager
Unity Package Manager资源包管理器是一个模块化系统和API,它会在项目中动态地加载和更新Unity开发的新功能。请阅读《Unity资源包管理器-全新项目管理方式》了解详情。
Unity的GitHub主页
Unity的GitHub主页是Unity实验阶段和预览阶段新功能的宝库,包含大量示例项目、脚本和演示等内容。
Unity的GitHub主页:https://github.com/Unity-Technologies
小结
以上就是Yilmaz Kiymaz分享的小技巧,希望大家能够掌握,从而提升Unity开发效率。
本文转自: Unity官方平台,转载此文目的在于传递更多信息,版权归原作者所有。