NGUI -- UIPanel

article/2025/9/29 19:57:59

注意:本文翻译时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



如果你有一些和这个组件相关的问题,也可以在下面讨论。






http://chatgpt.dhexx.cn/article/ge9knurq.shtml

相关文章

NGUI使用教程(1) 安装NGUI插件

前言 鉴于当前游戏开发的大势,Unity3d的发展势头超乎我的预期,作为一个Flash开发者,也是为Flash在游戏开发尤其是手游开发中的地位感到担忧....所以 最近一段时间都在自己学习unity3d,技术只有不断学习才能跟上迅猛的计算机潮流,所以博主写这篇文章即是自…

UI(一) - NGUI和UGUI比较

UI是游戏项目中重要的组成部分,面对一个从零开始的项目,首先要确立的就是选用哪个UI系统作为主框架。 现在主流项目中基本上都是NGUI和UGUI,那么到底选哪个。我们先来做个比较。 图集处理功能比较 NGUI需要使用工具手动拼接图片成图集。UGUI…

NGUI系列教程一

首先导入NGUI package ,这里我们选用的是2.6.3 版本的NGUI 。在 unity 工程窗口中点击右键选择 Importpackage custom package ,选择你下载的NGUI 插件,导入完成后效果如图: 1.选择菜单NGUIOpen the UI Wizard,弹出创建…

最新版本的NGUI插件NGUI Next-Gen UI

NGUI的最新版本,在商店上直接卖95美元 由于Unity自身版本升级的原因,以及Unity5之后自带了UGUI,所以NGUI的使用率也大大下降了。 更何况,Unity2017版本之后很多老版本NGUI就用不了,很大一部分原因是Unity新版本弃用一…

UI框架的使用(NGUI)

1.导入资源包 2.把NGUI面板制作成预设体,然后把预设体拖到Resources/UIPanel中(一定要放在Resources/UIPanel中,后面路径读取的时候就是这个路径) 3.为各自面板建立对应的脚本,然后再把脚本挂给对应的面板 4.为各个…

【Unity】NGUI下载与导入

NGUI是UGUI出现之前的Unity3D最流行的UI插件,很多比较早的游戏教程都是用的NGUI。 本人因学习原因需要用到NGUI,但捣鼓了很久才成功(导入后菜单栏没有NGUI),下载了几个版本才发现是版本问题,现将下载与导入使用NGUI的方法总结如下,节省大家时间,少走弯路。 1、下载NGUI…

Unity学习日志_NGUI简介

Unity学习日志_NGUI简介 NGUI仅支持相机模式。 UIRoot UIRoot类似于UGUI中Canvas的UI Scaler组件,负责缩放模式调节。 属性: Scalling Style: Flexible:旧版本叫PixelPerfect,指永远保持图片自身像素大小不变。适合…

NGUI简介

NGUI NGUI是一款为Unity游戏引擎开发的工具功能扩展的UI插件,它能够为开发者提供了方便快捷的UI设计方法,加快设计游戏的速度。详细的介绍还是请读者到NGUI官网查看: http://www.tasharen.com/?page_id140 在Unity中,如果要使…

NGUI

(一)NGUI NGUI概述:NGUI是严格遵循KISS原则并用C#编写的Unity(适用于专业版和免费版)插件, 全面支持iOS/Android和Flash。相比UGUI(Unity自带的UI系统),有着更高的性能和…

【Unity】 NGUI学习笔记(二)NGUI基础功能

文章目录 NGUI基础功能与知识点Atlas图集资源Sprite精灵Button按钮Anchor(锚点)Label文本Toggle开关Slider滑动条Popup List下拉框Panel面板Input Field Script文本域脚本Text List组件Chat Input组件Scroll Bar滚动条(预制件)Scr…

NGUI插件的使用

一、NGUI的公有属性 Widget面板属性: Privot设置原点位置 Depth设置深度(跟UGUI一样,深度高的会挡住深度低的UI) Snap恢复初始大小 Size设置大小 Aspect宽度/高度,(Free模式下才可设置高度和宽度&#xff0…

网上订餐系统项目实战

写在前面:学习编程过程中写的一个网上订餐系统,记录一下大概的思路,源码跟实现过程 ,这也是一个学习的过程,这时候还有很多不足的地方 MVC的分层做得不是很好,如果还有其他可以改进的地方,欢迎…

肯德基宅急送网上订餐系统(移动扫码点餐)的设计与实现(小程序+PHP+MySQL)

目 录 第1章 绪论 1 1.1研究背景及意义 1 1.2研究现状 1 1.3章节安排 2 第2章 关键性技术介绍 3 2.1 PHP 3 2.2 JSON 4 2.3 XML 5 2.4 HTML 5 2.5 Mysql介绍 6 第3章 需求分析 7 3.1系统业务流程分析 7 3.2 功能需求分析 8 3.3用例分析 10 3.3.1领域类图 10 3.3.2系统用例 14 3…

基于移动端的网上订餐系统的设计和实现

随着智能手机的快速普及,智能手机操作系统市场风生水起。为了让智能手机能够随时随地地查询互联网所提供的服务,一种高效的方法就是将应用系统的功能拓展到手机终端上,让手机能够通过移动网络以及互联网访问相关资源信息。因此,智能手机应用软件及其需要的服务将有广阔的发展前…

基于javaweb+mysql的网上订餐在线点餐管理系统(前台、后台)

基于javawebmysql的网上订餐在线点餐管理系统(前台、后台) 运行环境 Java≥8、MySQL≥5.7、Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练习,学习演示等 功能说明 …

Java+mysql毕业设计,网上订餐系统

1 绪 论 1.1 网上订餐配送系统的简介 本系统是基于B/S架构的系统。随着互联网技术与时俱进的不断更迭,人们对订餐的方式要求也逐渐提高,而本文所论述的网上订餐配送系统,正式随着互联网的兴起应运而生的。本系统能够帮助用户远程浏览餐饮信…

Java基础实战项目-------网上订餐系统

目录 前言 项目需求 项目环境准备 技能点 实现思路 ​编辑 项目总结 完整代码: 前言 已学完Java基础部分的内容,如下 理解程序的基本概念:程序、变量、数据类型 会使用顺序、选择、循环、跳转语句编写程序 会使用数组以及Arrays的…

毕设系统之网上订餐管理系统

距离毕业已经过去一个月了,毕设那一段难忘的时光相信大家也都还记得,我当时做的毕设系统是网上订餐管理系统,有三个角色,分别是管理员、用户(含会员)、商家,所用的技术为SpringBootMybatisThyme…

网上订餐系统需求分析报告

一.研究意义 随着计算机和网络的日趋发展,网上店铺如雨后春笋般出现,就连沃尔玛,金拱门这一类老品牌的商家都开拓了自己的网上购物渠道,有调查表明:无论是中国还是西方国家,越来越的用户已经习惯于网络购物…

《网上订餐系统》开发全程回忆

一、需求分析 随着信息经济的发展,许多上班族因工作繁忙导致就餐时间紧凑,而没法享受各种美味。传统的订餐方式过于乏味。而不能满足当今社会快速的生活节凑。然而,把餐饮与互联网结合起来正好解决了这一问题。网上订餐系统对广大顾客提供网上订餐服务,既方便了上…