转自: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就不会。

上面关于UIPanel知识參考于此链接:http://www.tasharen.com/forum/index.php?topic=6705.0

转载于:https://www.cnblogs.com/yutingliuyl/p/6703530.html

NGUI: UIPanel控件相关推荐

  1. NGUI基本控件的使用教程与实例

    NGUI教程:步骤1-Scene 1.创建一个新的场景(New Scene). 2.选择并删除场景里的MainCamera. 3.在NGUI菜单下选择Create a New UI,会打开UI创建向导 ...

  2. NGUI用onSelect检测(监听)Input 控件失焦(非选中状态)

    今天做自己的游戏,有个功能,就是要玩家输入文字后,点击其他区域(输入框失焦,准确说是非选中状态)自动提交.这就需要监听到Input 输入框的失焦事件,然后回调自定义方法.尝试了半天,最后发现可以用on ...

  3. 用uGUI开发自定义Toggle Slider控件

    一.前言 写完<Unity4.6新UI系统初探>后,我模仿手机上的UI分别用uGui和NGUI做了一个仅用作演示的ToggleSlider,我认为这个小小的控件已能体现自定义控件的开发过程 ...

  4. Unity3d UGUI基础控件使用(一)

    转载自:Unity3d UGUI基础控件使用(一) 一:UGUI介绍 UGUI是Unity4.6之后,经过多重测试,推出全新的UI系统,更灵活,快捷,易用的可视化游戏UI开发工具. 由于之前传统的UI ...

  5. unity3d的日历控件

    开发了一个日历控件,在unity3d里面使用.使用方法如下: 首先写一个回调函数,函数参数为DateTime类型,当日历控件关闭时,选择的时间信息作为这个参数传入到这个回调函数,函数例子如下: voi ...

  6. Qt---布局,设置控件边距,拉伸因子

    QGridLayout *LeftLayout =new QGridLayout(this); LeftLayout->addWidget(label1, 0, 0); //label1在第1行 ...

  7. HarmonyOS 字体在自身控件中居中(使用text_alignment)

    要实现的效果就是把字体在控件居中 HarmonyOS  使用的是text_alignment 属性,详细的如下 text_alignment 文本对齐方式 left 表示文本靠左对齐. 可以设置取值项 ...

  8. Android 如何防止用户同时点击多个控件问题

    qa 测试说 一次连点不同的控件,app 多个控件分别有响应  这个问题处理方法也是很简单 就是在布局里面添加 android:splitMotionEvents="false"a ...

  9. Android中设置控件可见与不可见详解

    通常控件的可见与不可见分为三种情况. 第一种 gone 表示不可见并且不占用空间 第二种 visible 表示可见 第三种 invisible 表示不可见但是占用空间 可见与不可见的表现形式有两种. ...

最新文章

  1. Eclipse的Git插件下载项目出现 No project found
  2. 七夕节,程序员们都怎么哄女朋友开心?
  3. 【Linux系统编程】进程和线程的区别
  4. 智能计米器jk76怎么安装_Redmi智能电视X系列性能有多好?怎么安装第三方软件?...
  5. 迎.NET6,今日先送200P全新视频教程 / 源码
  6. Docker系列之.NET Core入门(三)
  7. hashcat 基本使用
  8. 模拟生态圈_电源工程师必备求生技能——经典20种模拟电路
  9. redis 如何查看某个库的key_如何发现 Redis 热点 Key ,解决方案有哪些?
  10. atitit 面试问题表 侧重于项目和业务描述方面.v2 良好的标准:: 1.回答问题比较流畅,较少出现停顿现象,较少犹豫 2.回答有条理清晰 不杂乱 3.回答较为丰富内容 4.精神状态紧张
  11. 微信浏览器真不愧移动届ie啊
  12. 【开发日常】手动安装fastboot驱动(开发板连不上minitool)
  13. 快速集成 iMessage(下)
  14. 计算机显卡怎样安装方法,台式机显卡怎么安装?教您安装方法
  15. Android 属性动画
  16. echarts树状图
  17. 如何制定个人学习计划?
  18. Firefox浏览器-渗透测试插件推荐
  19. ManualResetEvent,AutoResetEvent 学习
  20. 计算网格中直线经过的格子

热门文章

  1. SQLite安装、编译与应用
  2. c一:指针引用(int * p )和指针(int * q)的区别
  3. 全球买全球卖 国际化的技术挑战
  4. 一些小标签(上标下标下划线等)
  5. [LeetCode] Binary Tree Postorder Traversal 二叉树的后序遍历
  6. C++ 创建引用DLL
  7. Phone重绘机制drawRect 转
  8. DOS命令行中用MAVEN构建Java和Java Web项目
  9. 单片机c语言程序设计实训报告,(整理)单片机C语言程序设计实训100例.doc
  10. __attribute__ 总结