此文章仅收集整理个人学习之用, 部分内容来源见文尾
相比于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中,默认控件是参与交互的,除非