NGUI: UIPanel控件
转自:http://blog.csdn.net/huang9012/article/details/19411703
http://bbs.9ria.com/thread-417659-1-1.html
NGUI官方文档:http://tasharen.com/ngui/docs/annotated.html
概述
UIPanel用来收集和管理它以下全部widget的组件。
通过widget的geometry创建实际的draw
call。没有panel全部东西都不可以被渲染出来。
假设你对Unity熟悉,你可以把UIPanel当做Renderer。
全部panel都有一个Depth值,会影响全部它包括的widget。
假设你的UI有非常多窗体,那么最好每个窗体有一个panel。
Panel上的depth权重会远远高于每个widget的depth权重。所以保证panel不要使用相同的depth。假设使用相同的depth在panel上,那么draw
call会被自己主动拆分来保证渲染顺序。所以会添加很多其它的draw call。
- Alpha属性影响全部在panel以下的widget。所以能够用它来淡出整个窗体。
- 假设你的UI须要被灯光影响。须要勾选上Normals。
- 假设创建了一个有非常多geometry的scrollable panel。你须要勾选Cull选项来降低三角形的数目。这样也可能降低性能。由于widget的可视性须要每次update都检验一次。
- 勾选Static选项来告诉NGUI这个panel以下的widget不会被移动,这样能够提高性能。
NGUI会忽略全部的position/rotation/scale改变。所以在执行时移动widget不会有效——所以小心使用。
- 假设要调试由panel创建的draw calls,Show All选项可能帮助到你。你会看到由panel创建的全部draw call,以渲染顺序排序。每一个draw call会包含它使用到material的具体信息。那个widget用的这个material,甚至能够让你关闭某些draw call来让你查询某些问题。
Panel会依据dimensions自己主动Clip全部它的子节点。
使用这个功能须要选择Clipping下拉列表中的随意选项,之后调整Scene
View中紫色矩形的尺寸。就像调整widget的尺寸一样。通过这样做你能够把一个panel放到Scroll View中,让他轻松的拖拽。
注意clipping的panel不能嵌套。每一个panel仅仅能clip自己管理的widget,假设一个panel在另外一个panel里面,仅仅有一个会影响到里面的widget。这个限制以后会去掉。
默认NGUI中panel的Render
Queues从3000開始往上添加。你能够通过Render Q来改动。假设你想在两个panel中间添加粒子。仅仅要改动两个panel的render queue一个高于粒子,一个低于粒子就可以。假设想要让全部的draw call使用和NGUI 2.x版本号的渲染方式一样,使用z轴而不是depth。那么给panel的Render Q指定为Explicit。(NGUI
2.x用的是3000)。
假设你找和Anchors相关的文档,能够看基类——UIRect。
小贴士
一个动力学Rigidbody会自己主动添加到你的panel上,由于对于Unity来说这样会提升性能。移动静态的collider会有非常多消耗性能的操作,可是移动rigidbody就不会。
类文档
http://tasharen.com/ngui/docs/class_u_i_panel.html
............................................................完美的切割线........................................................................
UIPanel的一些小知识
UIPanel用来收集和管理它以下全部widget的组件。通过widget的geometry创建实际的draw call。没有panel全部东西都不可以被渲染出来,你可以把UIPanel当做Renderer。
假设创建了一个有非常多geometry的scrollable panel,你须要勾选Cull选项来降低三角形的数目。这样也可能降低性能。由于widget的可视性须要每次update都检验一次。
勾选Static选项来告诉NGUI这个panel以下的widget不会被移动。这样能够提高性能。
NGUI会忽略全部的position/rotation/scale改变。所以在执行时移动widget不会有效——所以小心使用。
假设要调试由panel创建的draw calls,Show All选项可能帮助到你。
你会看到由panel创建的全部draw call,以渲染顺序排序。
每一个draw call会包含它使用到material的具体信息。那个widget用的这个material,甚至能够让你关闭某些draw
call来让你查询某些问题。
Panel会依据dimensions自己主动Clip全部它的子节点。使用这个功能须要选择Clipping下拉列表中的随意选项,之后调整Scene View中紫色矩形的尺寸。就像调整widget的尺寸一样。
通过这样做你能够把一个panel放到Scroll
View中,让他轻松的拖拽。
注意clipping的panel不能嵌套。
每一个panel仅仅能clip自己管理的widget。假设一个panel在另外一个panel里面,仅仅有一个会影响到里面的widget。这个限制以后会去掉。
默认NGUI中panel的Render Queues从3000開始往上添加。
你能够通过Render Q来改动。
假设你想在两个panel中间添加粒子,仅仅要改动两个panel的render queue一个高于粒子。一个低于粒子就可以。
假设想要让全部的draw
call使用和NGUI 2.x版本号的渲染方式一样,使用z轴而不是depth。那么给panel的Render Q指定为Explicit。(NGUI 2.x用的是3000)。
小贴士
一个动力学Rigidbody会自己主动添加到你的panel上。由于对于Unity来说这样会提升性能。
移动静态的collider会有非常多消耗性能的操作,可是移动rigidbody就不会。 topic=6705.0" target="_blank" style="word-wrap:break-word; margin:0px; padding:0px; color:rgb(51,102,153)">http://www.tasharen.com/forum/index.php?topic=6705.0
上面关于UIPanel知识參考于此链接:
NGUI: UIPanel控件的更多相关文章
- Unity3D NGUI UIPlayTween控件(一)动态打开关闭窗口
利用NGUI自带的脚本控件实现按钮点击窗口滑动出现与隐藏. 创建界面 首先建立如下图的三个BUtton与三个Panel 绑定脚本 然后在每个Button上添加UIPlayTween脚本,在Intera ...
- C#程序员整理的Unity 3D笔记(十五):Unity 3D UI控件至尊–NGUI
目前,UGUI问世不过半年(其随着Unity 4.6发布问世),而市面上商用的产品,UI控件的至尊为NGUI:影响力和广度(可搜索公司招聘Unity 3D,常常能看到对NGUI关键词). NGUI虽然 ...
- NGUI的部分控件无法更改layer?
http://momowing.diandian.com/post/2012-09-17/40038835795 今天狗日的遇到这样的问题,这是一个imagebutton:,它的层定义为:,NGUI里 ...
- Unity NGUI 描点控件的位移动画
要让一个描点的控件动画移动到一个Position,能够用TweenPosition.可是这个仅仅能用在Position是固定的情况下.并且不能依据分辨率适配来进行移动. 以NGUI自带的 ...
- 修改NGUI 3.11 的控件 inputfileld hide input 属性bug
1.勾选hideinput属性后,输入中文,会出现,无法显示的问题. 2.勾选hideinput属性后,密码框会出现第一个字母被吃掉的问题 解决方案:控件都不要勾选hideinput属性,代码做如下修 ...
- 用uGUI开发自定义Toggle Slider控件
一.前言 写完<Unity4.6新UI系统初探>后,我模仿手机上的UI分别用uGui和NGUI做了一个仅用作演示的ToggleSlider,我认为这个小小的控件已能体现自定义控件的开发过程 ...
- Unity 通过Animation实现控件位置的转换
Unity版本:4.5.1 NGUI版本:3.6.5 参考链接:http://blog.csdn.net/unity3d_xyz/article/details/23035521,作者:CSDN in ...
- UGUI Button控件
今天一起来学习下Button控件, Button控件其实是由Text,Button,Image组件形成的. 这里就简单介绍下Button组件 Interactable: 代表该组件是否进行交互, 我们 ...
- unity4.6 Beta版 UI控件之Button
近期需求,须要用到4.6版本号uGui了,所以抽时间来学习学习,就UI控件在Unity工具里创建预设这块来说相比較于NGUI,我认为是没有什么太大的差别的. 比方:Canvas--Camera . T ...
随机推荐
- JavaScript游戏中的面向对象的设计
简介: 从程序角度考虑,许多 JavaScript 都基于循环和大量的 if/else 语句.在本文中,我们可了解一种更聪明的做法 — 在 JavaScript 游戏中使用面向对象来设计.本文将概述原 ...
- Android之属性动画(一)
一.概述 Android平台中常用的动画主要有两类,一类是View动画,一类是3.0后新增的属性动画.属性动画与View动画相比功能更加强大,主要体现在以下两个方面: 1. 属性动画不仅仅能应用到V ...
- Gson解析复杂Json数据
背景 json是一种数据格式,便于数据传输.存储.交换. gson是 ...
- 【架构】SpringCloud JHipster -微服务相关资料
SpringCloud-微服务相关资料 基于Spring Boot和Spring Cloud实现微服务架构学习(四)-Spring Cloud总结 - zeb_perfect的专栏 - 博客频道 - ...
- 在ubuntu下手机无法挂载的问题
在ubuntu下手机无法挂载的问题 , 原因之一是,usb数据线连接在了机箱前面,可以尝试连接到机箱后面的USB接口试试,我当时遇到过这样的情况,这样解决的.
- CSS半透明兼容写法
filter: Alpha(opacity=10); -moz-opacity:0.1; opacity:0.1; 例如: background:#A5CD40; filter: Alpha(opac ...
- Grails开发环境的高速搭建
Grails开发环境的高速搭建 1 JAVA环境变量的设置和Grails设置环境变量 个人參考 JAVA_HOME =E:\kaifa\Java\jdk7_32 GRAILS_HOME =E:\kai ...
- Android提示版本更新的实现
一.首先,参考了以下文章<Android自动检测版本及自动升级> http://www.linuxidc.com/Linux/2011-10/45718p2.htm: 步骤: .检测当前版 ...
- ZH奶酪:PHP图片压缩(TinyPNG在线API)和(使用Imagick扩展)
1.调用TinyPng网站提供的API 1.1.须知 (1)tinypng的官网:https://tinypng.com/ 不知道国内访问会不会很慢,在Singapore打开这个网站很流畅: (2)A ...
- 利用vbs设置Java环境变量
每次PC重装后,又要设定Java环境变量,向我这种不爱记得人,老是要去找设定内容 感觉设置环境变量还真是比较麻烦,我是希望可以做成点击一下就ok的,这样重装系统就不用那么麻烦了, 但是考虑到通用性,为 ...