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

摘要:
当一个功能系统有多个界面时,并且可以共用一个panel时,也可以每个界面用widget来当容器划分4.可以把panel优化成UI层,事先分好遮挡关系,比如提示层˃公告层˃二级界面层˃一级界面层˃底层这种,每层是一个panel,每层中的界面用widget来当容器,但缺点每层中的界面之间没法调遮挡关系,所以只能同时显示一个界面,除非能十分确定游戏不需要同时显示多个界面,不然不推荐,后期调整会很麻烦

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比当前所属层高,这样层关系就乱了),所以只能同时显示一个界面,除非能十分确定游戏不需要同时显示多个界面,不然不推荐,后期调整会很麻烦

免责声明:文章转载自《Unity NGUI UIPanel 和 UIWidget 作为容器使用时的区别》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇常用文本压缩算法及实现(To be finshed!)[业界方案] ClickHouse业界解决方案学习笔记下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Docker——JVM 感知容器的 CPU 和 Memory 资源限制

前言 对于那些在Java应用程序中使用Docker的CPU和内存限制的人来说,可能会遇到一些挑战。特别是CPU限制,因为JVM在内部透明地设置GC线程和JIT编译器线程的数量。 这些可以通过命令行选项 -XX:ParallelGCThreads 和 -XX:CICompilerCount 显式设置。对于内存限制,也可以通过JVM命令行选项 -Xmx 显式设...

Spring注解驱动第六讲--@Import注解

在以前的博客中介绍了两种让容器自动装配bean的方法: 1,使用@Bean注解进行装配 2,使用@ComponentScan进行包扫描,扫描带有@Controller,@Service,@Repository,@Component注解的类即可装载bean 还有一种方式,使用@Import注解进行对引用第三方类时使用 用法: 一,直接在主配置类上添加@Imp...

C++ Vector 用法总结

1, 头文件#include <vector> using namespace std; 2,定义与初始化 一般结合模板来使用 vector <Elem>                 // 创建一个空的vector。 vector <Elem> c1(c2)          // 复制一个vector vector...

针对IE浏览器里面CSS的Bug解决方法

IE6双倍边距bug 当页面内有多个连续浮动时,如本页的图标列表是采用左浮动,此时设置li的左侧margin值时,在最左侧呈现双倍情况。如外边距设置为10px, 而左侧则呈现出20px,解决它的方法是在浮动元素上加上display:inline;的样式,这样就可避免双倍边距bug。 3像素问题及解决办法 当使用float浮动容器后,在IE6下会产生3px的...

docker下修改mysql配置文件

第一步: 找到要修改的镜像 docker ps    第二步: 进入要修改的镜像 docker exec -it 容器ID /bin/bash    第三步: 进入要修改的文件目录 cd /etc/mysql    第四步: 安装vim 如果不安装vim在使用vim的时候会报找不到,在修改docker中mysql的配置文件,无法使用vi命令。 apt...

Kubernetes核心原理(四)之Kubelet

1. kubelet简介 在kubernetes集群中,每个Node节点都会启动kubelet进程,用来处理Master节点下发到本节点的任务,管理Pod和其中的容器。kubelet会在API Server上注册节点信息,定期向Master汇报节点资源使用情况,并通过cAdvisor监控容器和节点资源。可以把kubelet理解成【Server-Agent】...