【UIPanel】

  UIPanel is a component that collects and manages all widgets underneath it. UIPanel is responsible for creating the actual draw calls using the widget's geometry. Without panels, nothing can be drawn.

  All panels have a Depth value which affects all widgets underneath.The depth value of panels carries a lot more weight than the depth value on individual widgets, so it's a good idea to ensure that your panels don't share depth values. If values get shared, draw calls will start to get split up frequently in order to preserve the draw order, resulting in a lot more draw calls than usual.

  

  • Alpha 属性影响它下面的所有的挂件。用它来实现整个窗口的淡出是不错的方式。
  • 如果你的UI受灯光影响,请确认你勾选了Normals复选框
  • 如果你正在创建一个可滚动的panel,它里面有大量几何图形,你可能应该勾选Cull选项去减少三角形面数。注意这么做实际可能会降低性能,因为它会在每个update都检查挂件的可见性!
  • 勾选Static复选框会告诉NGUI这个Panel下面的挂件不需要移动从而提高性能。NGUI会忽略检查position/rotation/scale的变化。注意这么做意味着在运行时移动挂件不会有任何效果——不过还是要注意。

裁剪功能(Clipping)

  Panel能根据你使用的大小自动裁剪所有的孩子。为了允许裁剪,请从Clipping的下拉框中选择一个选项,然后根据你想要的挂架大小来调整场景视图中紫色的矩形的大小。如果那样做了,你能把panel编程一个Scroll View并很简单让它变成可拖动的。
  注意panel的裁剪不支持嵌套。每个panel只能裁剪它管理的孩子结点,如果你里面还有一个clipped的panel,他们之间只有一个能影响挂件。这个限制可能在未来会被移除。
  
  

  默认上,NGUI所有的Panel将使用一个值为3000和以上的渲染队列来绘制。你可以通过在Render Q下拉列表来做一些改变。如果你想要在你的两个panel之间增加一个粒子系统,只要简单确保你第一个panel的render queue比被用于粒子系统的材质的低,第二个比粒子系统的高。如果你想让像NGUI 2.x所有的draw call是基于Z轴而不是基于depth,指定一个明确的Render Queue(3000是NGUI2.x使用的)

  如果你正在寻找关于Anchors部分的文档,你能在他的基类 -- UIRect中找到。

参考:

1、http://www.tasharen.com/forum/index.php?topic=6705

2、http://blog.csdn.net/kakashi8841/article/details/20641375

  

UIPanel的更多相关文章

  1. NGUI 渲染流程深入研究 (UIDrawCall UIGeometry UIPanel UIWidget)

    上图是一个简要的NGUI的图形工作流程,UIGeometry被UIWidget实例化之后,通过UIWidget的子类,也就是UISprit,UILabel等,在OnFill()函数里算出所需的Geom ...

  2. NGUI之UIPanel

    原文:http://www.tasharen.com/forum/index.php?topic=6705.0 概述 UIPanel用来收集和管理它下面所有widget的组件.通过widget的geo ...

  3. NGUI的原理机制:深入剖析UIPanel,UIWidget,UIDrawCall底层原理

    这是我去搜狐畅游面试时,面试官问的一个问题.问NGUI的机制原理是什么?就是这个插件是根据什么写出来的.当时没答上来,下面是我从转载过来的,可以研究研究. 之前项目中用的NGUI的版本是3.0.7 f ...

  4. Unity NGUI UIPanel下对粒子的剪裁

    使用 unity 做游戏开发时,有时需要在scroll view下使用粒子,但粒子是不会被 UIPanel 所裁剪的,本人提供了脚本 ParticleSystemClipper,用来处理这种情况.思路 ...

  5. 【Unity游戏开发】浅谈 NGUI 中的 UIRoot、UIPanel、UICamera 组件

    简介 马三最近换到了一家新的公司撸码,新的公司 UI 部分采用的是 NGUI 插件,而之前的公司用的一直是 Unity 自带的 UGUI,因此马三利用业余时间学习了一下 NGUI 插件的使用,并把知识 ...

  6. NGUI: UIPanel控件

    转自:http://blog.csdn.net/huang9012/article/details/19411703 http://bbs.9ria.com/thread-417659-1-1.htm ...

  7. NGUI UIPanel绘制原理学习

    NGUI底层绘制都是调用UIDrawCall来完成的,它会动态实例化出材质球,改变UV偏移和缩放(图集显示).并且全部是面片 UIPanel也是面片,但是内部物体遮罩比较特殊,经过查找发现,影响UIP ...

  8. NGUI所见即所得之深入剖析UIPanel,UIWidget,UIDrawCall底层原理

    NGUI所见即所得之深入剖析UIPanel,UIWidget,UIDrawCall底层原理 By D.S.Qiu 尊重他人的劳动,支持原创,转载请注明出处:http.dsqiu.iteye.com 之 ...

  9. Unity NGUI 多个UIPanel对粒子的剪裁

    之前写过一篇单个 UIPanel 对粒子的裁剪,地址是:https://www.cnblogs.com/jietian331/p/5075487.html 但项目中有时会遇到多个UIPanel,如下面 ...

随机推荐

  1. win7下VS2010编译python3

    转自:http://www.cnblogs.com/fortwo/archive/2013/04/16/3023871.html 1.首先从python.org上:http://www.python. ...

  2. ballerina 学习十四 values && types

    ballerina 包含的数据类型有string int map array record boolean ojbect function table tuple any 简单说明 数据类型和其他语言 ...

  3. kong 安装

    1. yum 参考信息 https://bintray.com/kong/kong-community-edition-rpm $ sudo yum install epel-release $ su ...

  4. 浅谈ecmall插件机制

    插件是独立于原系统的程序模块,目的是在不修改原程序的情况下对系统进行扩展,便于修改和管理.目前web开发中大多是使用钩子形式来定义插件, 比较典型的有 wordpress, drupal系统 ecma ...

  5. 轻量级封装DbUtils&Mybatis之一概要

    Why 一时兴起,自以为是的对Jdbc访问框架做了一个简单的摸底,近期主要采用Mybatis,之前也有不少采用Dbutils,因此希望能让这两个框架折腾的更好用. DbUtils:非常简单的Jdbc访 ...

  6. contOS下安装Tomcat

    安装tomcat之前要安装Java环境 也就是JDK 配置Java环境变量 我的jdk安装在   /usr/local/  目录下 命令   vi /etc/profile    编辑这个文件添加环境 ...

  7. 干货:这也许是最全面透彻的一篇RabbitMQ指南!

    本文大纲: RabbitMQ 历史 RabbitMQ 应用场景 RabbitMQ 系统架构 RabbitMQ 基本概念 RabbitMQ 细节阐明 历史-从开始到现在 RabbitMQ是一个Erlan ...

  8. python TypeError: unsupported operand type(s) for +: 'int' and 'str' [closed]

    TypeError: unsupported operand type(s) for +: 'int' and 'str' [closed] sql="insert into auto_tr ...

  9. Java经典练习题_Day04

    一.选择题 1. 下列关于数组的说法正确的是:(A) A. 在Java中数组的长度是可变的 B. 数组中存储的数据的类型是相同的 C. 数组在进行扩容操作的时候源数组的地址不发生改变 D. int[] ...

  10. Java运算符,关系运算符

    关系运算符介绍 下表为Java支持的关系运算符 表格中的实例整数变量A的值为10,变量B的值为20: 运算符 描述 例子 == 检查如果两个操作数的值是否相等,如果相等则条件为真. (A == B)为 ...