此文章仅收集整理个人学习之用, 部分内容来源见文尾
相比于NGUI, UGUI的优点:
- 层级管理
- UGUI采用的排序比较简单, 在C++层处理,效率更高
- 在Canvas内部元素采用Hierarchy方式排序,
- 在Canvas同级之间通过Sort Order或者是Hierarchy来进行排序
- NGUI的排序是通过Depth、Z值、RenderQueue共同影响的,整体规则过于复杂
- UGUI采用的排序比较简单, 在C++层处理,效率更高
- 3DMesh嵌套问题: 角色和粒子效果与UI嵌套的情况
- UGUI修改的是粒子Renderer的Sorting Order来跟UI进行排序
- NGUI中可以动态修改Mesh的RenderQueueMesh 的渲染序列加入到UIPanel里面
- 使用RenderTexture, 来与其他的UI做排序
- 合批逻辑
- NGUI实质上是创建自定义Mesh,使用Mesh Renderer来做渲染的。对UI的合批操作逻辑在C#层
- UGUI定义了Canvas组件,使用Canvas Renderer来做渲染,在C++层做合批逻辑,所以UGUI处理动态层的性能会比NGUI更佳
- UI交互事件
- UGUI中采用Event&Raycasters的设计,来替代NGUI中的Collider&SendMessage
- 在NGUI中,默认控件是不参与交互的,除非加上Collider
- 而在UGUI中,默认控件是参与交互的,除非手动禁止交互
- NGUI的交互事件是通过Se

本文探讨了UGUI相对于NGUI的优点,如层级管理、合批逻辑优化和UI交互事件改进。同时提供了UI制作建议,包括合理分配图集以降低drawcall。CPU优化方面,建议减少UI元素数量,动静分离,谨慎使用某些特性如Text的Best Fit和Canvas的Pixel Perfect。GPU优化主要关注Overdraw问题,可通过禁用不可见UI和避免空的Image来改善。最后,提到了UGUI优化工具和更多相关资源。
最低0.47元/天 解锁文章
1539

被折叠的 条评论
为什么被折叠?



