赞
踩
提示:仅供参考,有误之处,麻烦大佬指出,不胜感激!
UI和模型的一些优化。unity本身支持多种UI:IMGUI、UIElement、UGUI、NGUI、FairyGUI等
一般选择使用UGUI就好,也就是unity默认使用的UI。
IMGUI:仅用于Editor扩展,或运行时Debug
UIElement:可用于发布运行时和Editor
UGUI:渲染原理:根据Hierarchy的顺序来排序,越下面渲染在越顶层。Canvas与NGUI的UIPanel类似,每个Canvas将优化合并为1个Mesh或多个SubMesh;
推荐:FairyGUI也是很好的选择,但是有学习成本(新手也能1天学会基本使用,更多的是熟悉习惯花时间)
渲染原理:没有采取Mesh合并的策略,而是基于类似于Unity的Dynamic Batching技术,对DrawCall进行优化。它在不改变显示效果的前提下,尽可能的把相同材质的物体调整到连续的RenderingOrder值上,以促使它们能够被Unity DynamicBatching优化;
一个UGUI的控件不需要进行射线检测(也就是不需要鼠标等交互),则可以取消勾选Raycast Target
尽量避免UI控件的重叠。如果多个UI有重叠的部分,则会稍微增加一些额外的计算和渲染的开销。虽然这部分开销通常是非常小的,但我们最好也尽量避免这种情况。
UI的文字使用TextMeshPro比使用Text的性能更好,还可以制作图文混排:链接: unity 图文混排 TextMeshPro
区别:中文需要,制作字体集。
根据项目情况也可以和建模师商量,减少顶点数,骨骼等等。
模型导入Unity后,可以选中这个模型,在Inspector窗口设置它的属性。模型的一些优化可能会使动画出现问题
在Model选项卡,启用Mesh Compression可以压缩模型,压缩程度越高,模型精度越低,但是模型也会节省一些空间。
和图片一样,如果该模型不需要用代码来读写,则可以取消勾选Read/Write Enabled。
选择Everything即可。
如果该模型不需要使用法线,则可以把Normals设置为None。
如果该模型不需要用混合变形法线,则可以把Blend Shape Normals设置为None。
如果该模型不需要使用切线,则可以把Tangents设置为None。
如果该模型不需要用光照UV贴图,则可以取消勾选Swap UVs和Generate Lightmap UVs
对于Rig选项卡,Animation Type如果选择Generic Rig会比Humanoid Rig性能更好,但是一般使用Humanoid Rig是为了对人型的角色进行动画重定向,所以要根据自己的情况来选择。
如果模型不需要使用动画,例如一些完全不会动的石头等物体,则可以将Animation Type选择为None。
Skin Weights默认是4,对于一些不重要的动画对象,本变量可以设置为1,这样可以节省计算量。
建议勾选Optimize Bones,这样会自动剔除没有蒙皮顶点的骨骼。
勾选Optimize Game Object可以提高角色动画的性能,但是在某些情况下可能会导致角色动画出现问题,是否勾选要看动画效果而定。
如果角色模型是可以换装的,则在导入该模型后不要勾选这个选项,而可以在游戏运行时,该角色换装后,通过AnimatorUtility.OptimizeTransformHierarchy来勾选这个选项。
如果模型不需要使用动画,则可以取消勾选Import Animation。
对于Animation选项卡,设置Anim.Compression可以调整动画的压缩方式:
Off表示不压缩动画,这样动画文件可能会占用较大的空间,但是在运行时不会有任何信息损失
Keyframe Reduction表示使用关键帧算法来压缩动画,这样会显著减小动画文件的大小,同时保持相对较高的动画质量
Optimal表示会尽可能高地压缩网格,但是这样也会导致压缩时间增加。
如果使用Untiy的默认材质,则可以把Material Creation Mode设置为None(不推荐)。
一般使用下图:
Edit——Project Settings——Player——勾选Optimize Mesh Data(勾选可能会导致动画出现问题)
这样一来,Unity会在构建的时候中对网格数据进行优化处理,以达到提高游戏性能的效果。
但是这样往往会修改网格,我们勾选之后应该要进行测试,确保没有问题,再确
好记性不如烂笔头!
上一章:链接: Unity 性能优化之图片优化(八)
下一章:链接: Unity 性能优化之LOD技术(十)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。