Unity NGUI UIPanel 和 UIWidget 作为容器使用时的区别

1.UIPanel会产生drawcall,而widget不会,widget依赖于父节点来产生drawcall

2. panel有裁切区域,widget没有

3.当panel有裁切区域,Anchors对齐功能才可用,widget不用

4.widget下的depth没用,会按它的父panel的depth算,panel下的depth就是自己的

最后总结下使用方法

1.必须用裁切区域的,只能用panel,没什么好说的

2.用来当容器用便于管理的,用来做对齐的,用widget

3.做游戏功能界面时,每个功能界面做用一个panel,(如果界面用widget做容器区分,多个界面之间的遮挡就没办法调了,总不能把所有的子都排序),独有的只有这个系统用的图片资源创建一个atlas,功能界面的子页用widget来当容器。当一个功能系统有多个界面时,并且可以共用一个panel时,也可以每个界面用widget来当容器划分

4.可以把panel优化成UI层,事先分好遮挡关系,比如提示层>公告层>二级界面层>一级界面层>底层这种,每层是一个panel,每层中的界面用widget来当容器,但缺点每层中的界面之间没法调遮挡关系(因为如果一个界面想遮挡当层的其它界面,只能增加panel,并且depth比当前所属层高,这样层关系就乱了),所以只能同时显示一个界面,除非能十分确定游戏不需要同时显示多个界面,不然不推荐,后期调整会很麻烦

原文地址:https://www.cnblogs.com/1217224194-jiang/p/6796675.html