NGUI -- UIPanel

2024-08-20 16:08
文章标签 ngui uipanel

本文主要是介绍NGUI -- UIPanel,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

注意:本文翻译时NGUI版本已经更新到3.0.7
原文地址: http://www.tasharen.com/forum/index.php?topic=6705
总览
UIPanel是一个保存并管理它下面所有挂件的组件。UIPanel负责通过挂件的几何结构创建真正的draw call。如果没有Panel,没有任何东西能被绘制出来。如果你熟悉Unity,你可以把UIPanel看成是一个Renderer。
UIPanel继承了它的子类UIRect所有功能。



所有Panel都一个Depth值影响着他下面的所有挂件。如果你正在创建一个使用多个窗口的复杂UI,通常最好的做法是每个窗口有一个UIPanel。请确认你的panel不会拥有相同的depth值。如果这个值是一样的,为了保证绘制顺序,draw call将会开始频繁分割,这将导致产生比平常更多的draw call。
Alpha 属性影响它下面的所有的挂件。用它来实现整个窗口的淡出是不错的方式。
如果你的UI受灯光影响,请确认你勾选了Normals复选框
如果你正在创建一个可滚动的panel,它里面有大量几何图形,你可能应该勾选Cull选项去减少三角形面数。注意这么做实际可能会降低性能,因为它会在每个update都检查挂件的可见性!
勾选Static复选框会告诉NGUI这个Panel下面的挂件不需要移动从而提高性能。NGUI会忽略检查position/rotation/scale的变化。注意这么做意味着在运行时移动挂件不会有任何效果——不过还是要注意。
如果你想要调试panel创建的draw call,Show All选项会帮到你。这么做将让你看到由NGUI Panel创建的所有draw call。每个draw call显示的详细信息包括了使用的材质,由哪个挂件产生的,设置让你选择draw call关闭来帮助你观察会发生什么。
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中找到。

Pro-Tip
一个Kinematic的Rigidbody会自动加到你的Panel里面,因为根据Unity,这会极大提升重物理游戏的性能。移动静态collider是一个很耗时的操作,而移动rigidbody却不会。

类文档
http://tasharen.com/ngui/docs/class_u_i_panel.html

这篇关于NGUI -- UIPanel的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1090540

相关文章

王立平-NGUI

NGUI: UI插件 UI : 人机交互界面 UI大部分是2D 目前就总结了这些,后续会补充

NGUI -- UIWidget

注意:本文翻译时NGUI版本已经更新到3.0.7 原文地址: http://www.tasharen.com/forum/index.php?topic=6702.0 总览 UIWidget是一个基础UI组件。最简单来讲,它只是一个你能根据你自己意愿在屏幕上随意定位的矩形。这个挂件,有一个区域,它在运行时是看不到的--它是用于容纳其它组件的理想容器。 UI

NGUI -- UIRect

注意:本文翻译时NGUI版本已经更新到3.0.7 原文地址: http://www.tasharen.com/forum/index.php?topic=7013 总览 UIRect是所有Widgets和Panels继承的基础组件。你不能把它创建为一个组件,因为它是抽象类。如果你想要某些东西是可见的,你应该创建Widget或Panel。 下面视频展示不同anchor类

NGUI图集Atlas制作简介

此教程属于NGUI的具体操作,主要描述怎么制作一个游戏中的UI,相对来说比较简单,熟能生巧哇,动手操作一遍就可以完全掌握的。 1,在PS里面设计好要做的UI,然后切片成很多个png的图片(这属于美工的活啦,所以会描述的的比较简单点哈) 2,在Unity中 Project下新建一个Folder,F2重命名为ResUI,以后就用来存放所有的UI,在ResUI里面重新新建一个Folder,我

unity开发 --------- NGUI (UITable)

unity开发 --------- NGUI UITable与UIGrid相似,都是实现自动排序的。但UIGrid的元素大小是由我们来指定的,而Table中的元素的大小是根据元素本身计算出来的。 UITable还保存了元素的顺序List<Transform>。每次重排序,都会更新此List。除了要计算元素的Bound和保存List外,其他基本与UIGrid一致。 unity开发 ---

unity开发 --------- NGUI (UIGrid)

unity开发 --------- NGUI  UIGrid可以实现多个gameobject自动排序。可以设定其排序方向、每个元素的宽度,高度等。 public Arrangement arrangement = Arrangement.Horizontal;public int maxPerLine = 0;public float cellWi

unity开发 --------- NGUI(Localization、UILocalize)

unity开发 --------- NGUI NGUI支持动态加载资源功能。比如语言选择:假如当前语言为中文,当将语言更改为英文时,所有UI上的文字也立即变成了英文。此功能是用Localization和UILocalize两个脚本配合完成的。 Localization中记录多种配置方案,当更改配置方案时,由Localization发送通知,通知各UILocalize更新。 NGU

unity开发 --------- NGUI (UIViewPort、UIDraggableCamera)

unity开发 --------- NGUI 前面提到一种实现ScrollView的方法:unity开发 --------- NGUI (UIDragPanelContents、UIDraggablePanel、UICenterOnChild、UIScollBar、SpringPanel) 但上面那种发放有一个缺陷!它要用到shader。也就是说,对于低端设备,就不能以上面那种方式实现拖

unity开发 --------- NGUI (UIDragPanelContents、UIDraggablePanel、UICenterOnChild、UIScollBar、SpringPanel)

unity开发 --------- NGUI 1、实现scroll view功能需要UIDragPanelContents和UIDraggablePanel脚本。 首先,要使用拖拽功能,就要添加UIDraggablePanel脚本,此脚本附加在一个panel上。然后就可以在此panel上放置其它控件了。 若只是简单的将objects放置panel上,objects会挡住pane

unity开发 --------- NGUI

1、unity开发 --------- NGUI (UIRoot, UIAnchor, UIStrech) 2、unity开发 --------- NGUI (UISprite) 3、unity开发 --------- NGUI (UICamera, UIButtonKeys) 4、unity开发 --------- NGUI (UIButtonColor、Twee