【游戏开发经验分享】:Unity相关优化小结
Hi,欢迎来到好玩科技!国内王牌VR培训、游戏开发培训、虚拟现实培训、游戏美术设计培训、游戏制作培训机构!联系电话:400-800-2657 0371-61319183 18100326272
关注我们
好玩科技游戏开发培训机构
[学习资源] [学员作品]
×

网上报名

企业动态

【游戏开发经验分享】:Unity相关优化小结

发布时间:2018-10-11作者:好玩科技

以下是unity开发中需要注意的一些优化点,送上的都是比较接地气的干货!


unity常用开发技巧宝典.png


1.静态美术资源的输出

能合在一起整体输出的资源,尽量不要切开输出。


2.UI相关大背景图处理方式

一般为了表现丰富,ui整张大背景资源也是常见的。


3.图集大小测试检查

实际开发中并不是把资源往目录放下就ok,一般一个目录下的资源我们会让其打包图集。尽量保证图集不超过1024*1024,我们可对打图集进行测试分析,以便提前知道图集大小问题。


4.打ab包注意

提出公用目录,将项目内公用性比较强的资源统一放到该目录,注意不要把公用性较低的资源也一起放了,跟进实际项目去决定。因为该目录打ab包内容是被依赖的,进游戏就需要先把它加载进来的,否则其他ab包加载进来找不到依赖资源也显示不正常。

实际开发中很多情况会遇到Aui内有个X图标与Bui用的一个,可能Cui也有用到,但是这几个ui并不是进游戏就能打开或有入口触发打开的。这就是为什么不把X图标放到公共目录的一个原因。这中情况我们也可提出一个目录整理存放这些被公共到的资源,但该目录不进行ab打包,而是直接打包引用该目录资源的各个预制体,该情况下资源是被打包多份的。有以内存换外存的意思。


5.UGUI一些优化

5.1 透明边框避免过度绘制over draw,可去掉勾选Fill Center;


降低overdraw还有一种情况,系统Aui打开覆盖遮挡Bui,此时注意将Bui禁掉。

5.2 大部分Image和Text不需要响应事件,可以去掉RaycastTarget勾选;


5.3 布局UI时,同一深度的UI(Item)不要出现重叠。


5.4 对于有特效显示的ui,最好新挂个canvas节点供特效使用。


6.代码一些注意

6.1 尽量避免使用foreach;

6.2 尽量避免使用+来进行字符串连接;

6.3 尽量不要update函数中做复杂计算,如有需要,可以隔N帧(FixedUpdate)计算一次;

6.4 尽量减少函数调用栈,用x = (x > 0 ? x : -x)代替x = Mathf.Abs(x);

6.5 使用内建的常量,例如Vector3.zero等等,避免频繁创建相同的对象;

6.6 引用一个游戏对象的逻辑,可以在start函数里去定义它,如记录transform等;

6.7 尽量不主动调用GC,养成良好代码习惯。如果需要可在游戏暂停,切场景GC一次;

6.8 避免频繁的调用Find、GetComponent等;

6.9 用go.CompareTag (“XX”)来代替go.tag == “XX”;

6.10 尽量不要动态的Instantiate和destroy object,使用object pool;


以上是简要整理分享的干货,关于unity相关优化是聊不完的话题,随个人开发习惯与经验累积,优化的道路才会越走越顺畅!

推荐阅读: