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-editor-extensions-menu-items?playlist=17117
自动化处理
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.html
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精彩技术经验分享和谈论,尽在Unity Connect平台(Connect.unity.com)。
推荐阅读
Unity UI性能优化技巧
Unity VR/AR项目优化技巧与工具
Cinemachine在2D游戏中的开发小技巧
揭秘《死者之书》之风、场景地形及优化技巧
Unity Physics和Havok Physics正式发布
Unity GDC 2019 Keynote精彩回顾
Unity对Stadia支持的相关信息
2D Pixel Perfect:使用Unity创建任天堂红白机风格复古游戏
官方活动
Unity技术分享日-深圳站报名开启
3月29日,我们将来到深圳举办Unity技术分享日,分享Unity最新的前沿技术,以及Unity官方技术专家团队一对一的项目诊断。[了解详情...]
报名地址:
https://connect.unity.com/events/2019UnityShenZhenRS
Unite Shanghai 2019
5月10日-12日上海,Unite大会强势回归。技术门票正在热销中,购票即获指定Asset Store资源商店精品21款资源的5折优惠券。
了解Training Day开发者训练营课程内容,请点击此处。
了解部分技术演讲内容,请点击此处。
购票请访问:Unite2019.csdn.net
点击“阅读原文”访问Unity Connect