unity优化 — UI优化技巧

界面操作一般会触发UI的开关或者隐藏显示,必然会造成UI重建。

 

1.避免Active 和DeActive ,而采用控制Canvas组件的激活与关闭。

2.不需要参与点击事件的Canvas取消激活Graphic Raycaster 脚本。

3.仅用于显示的图片或者文本禁止勾选Raycast Target 脚本。

4.持续性的UI动态效果特效,最好采用特效的方式制作,脱离UI系统。

5.动态合静态的UI 要分开,分别挂上canvas。

6.适当对UI界面做缓存,保证再次打开更快。

7.界面初始化代码部分加上Profiler监测,统计代码效率。

8.将复杂的界面拆成多个界面,比如Tab页点击切换时再动态加载。

9.控制一帧内加载UI的数量,做好分帧加载策略。

 

对比全屏界面的UI界面。 可以关掉3D摄像机,没有3D部分的渲染,效率必然会提升。

 

战斗洁面奶是战斗时玩家可操作的界面,也是游戏中最敏感的界面,只要一丁点的额卡东玩家就能明显感知到,假设游戏战斗保持45FPS,那么留给每一帧的时间只有22ms,留给UI的只会更少。

1、通过Profiler查看UI的渲染耗时,到底是卡在GPU还是渲染上。

2、左边接受任务框或者右上方活动的UI转圈动画,最好用粒子特效来做。

3、头顶文字称号和冒血伤害数字(1)最好不要使用UI 系统,使用SprteRenderer 和3DText实现。

(1)使用UI系统的缺陷:摄像机位置角度发生变化需要实时修改UI的位置,必然会造成网格合并,而且UI系统本身效率没有3D的高。

4、图文混排聊天,一帧只加载一个,避免消息太多造成卡顿。

5、技能CD转圈不要每帧都更新,并且套上新的Canvas.

6、界面中显示倒计时,一般最小单位是秒,最好不要每一帧都计算。

7、战斗界面上左,上右、下左、下右、中左、中右、中间  都要挂上不同的canvas,避免网格重建影响太多。

8、主界面首次打开如果比较慢,会影响Loading条的等待时间,可以考虑分帧加载UI。

 

非战斗界面要比战斗界面的效率要求低一些,保持在30FPS就可以。

 

1、非战斗界面最好设计成全屏UI、打开时将战斗的Camera隐藏,提高效率

2、重点关注游戏对象的Active和 DeActive的数量

3、界面上显示3D模型做好分帧加载

4、滑动列表的滑动效率需要重点关注

5、文本组件建议使用Text Mesh Pro 

 

原文地址:https://www.cnblogs.com/zhaolaosan/p/15226173.html