【Unity3D】【NGUI】UIRoot

翻译 2013年12月05日 23:32:04

原文:http://www.tasharen.com/forum/index.php?topic=6710.0

NGUI讨论群:333417608


概述

UIRoot总是放在NGUI UI层级的最上层。

它用来使UI的缩放变得更容易。widget通常使用的是以像素为单位的坐标,但是一个800*400(dimensions的值)的widget会占用800*400个单位(Unity中的单位),这相当大。UIRoot通过屏幕高度的反比来进行缩放,因此widgets都会很小,并且操作起来更容易。

   

UIRoot有几种缩放方式。最常见的就是PixelPerfect。这种方式下,你的UI一直都是以像素为基础,一个300*200的widget在屏幕上永远占用300*200像素。这就意味着,你的UI在低分辨率的机器上会显得非常大,在高分辨率的机器上就会显得很小。这个设置就是一直保持你的UI清晰。

FixedSize是一个和它功能正好相反的设置。当UIRoot用了这个选项,你的屏幕永远都会保持NGUI所关心的尺寸,不管你的实际屏幕是多大。就是说一个300*200的widget占用了你1920*1080的25%的屏幕,那么当分辨率降低到1280*720的时候,它同样占用25%的屏幕。如果你不介意你的UI看起来像是不同的尺寸,也不关心是否清晰(就是可能一个小的UI被拉伸很大),那么选择这个选项。选择它的时候,不要忘记设置Manual Height 

FixedSizeOnMobile是前两种的组合。选择这个选项后,会在pc或者mac等桌面设备上用“PixelPerfect”,在移动设备上用“FixedSize”。 

如果你没有选择Fixed Size选项,那就要设置MinimumMaximum Height的值。这些值让你的虚拟屏幕看起来在合理范围。比如选择了Pixel Perfect方式,Minimum Height设置为720,那么当有玩家把你的程序运行在800*600(高度是600,小于Minimun Height)的设备上时,你UI的行为就和设置了“Fixed Size”模式、Manual Height值设为720的时候一样。

小贴士

UIRoot以2/ScreenHeight的值进行缩放。ScreenHeight可能是实际的屏幕高度(Pixel Perfect),也可能是manual height(Fixed Size)。这样做的目的是使渲染UI的camera的Orthographic Size的值一直使用1。

如果你不需要UIRoot的自动缩放功能,直接去掉这个组建。 

类文档

http://tasharen.com/ngui/docs/class_u_i_root.html

NGUI_创建及Label的使用_001

本博客使用的NGUI Next-Gen UI v3.9.9.unitypackage,将此UnityPackage导入工程之后,在菜单栏中将会出现NGUI选项。 我们在工程中需要创建一个类似于UGU...
  • yy763496668
  • yy763496668
  • 2017年09月11日 16:31
  • 387

CSS3-制作加载指示条

加载指示器 div { width: 100px; height: 100px; position: abso...
  • u014404513
  • u014404513
  • 2016年05月11日 17:52
  • 170

NGUI控件说明(中文) UIRoot

原文:http://www.tasharen.com/forum/index.php?topic=6710.0 NGUI讨论群:333417608 概述 UIRoot总是放在NG...
  • huang9012
  • huang9012
  • 2014年02月18日 15:20
  • 5656

Unity NGUI之UIRoot画布自适应

NGUI是Unity3D开发中常用的UI制作插件,它提供了丰富的UI组件,为开发者提供了极大的方便。作为一个手游开发者,面对纷繁复杂的机型,UI的自适应是一个很大的问题,还好NGUI为广大开发者提供了...
  • qq563129582
  • qq563129582
  • 2017年01月11日 22:40
  • 2911

Unity3D如何创建多个UIRoot?

当我们在场景中使用NGUI已经创建了3DUI和2DUI之后,如何还想再创建另外的UI,则UI选项会变化灰色而无法再次进行创建,因为默认的情况下场景中,不允许有多个UIRoot出现。而且大部分情况下也不...
  • yangyong0717
  • yangyong0717
  • 2017年05月06日 09:42
  • 403

NGUI -- UIRoot

注意:本文翻译时NGUI版本已经更新到3.0.7 原文地址:http://www.tasharen.com/forum/index.php?PHPSESSID=95e796b8f47f1380d66f...
  • kakashi8841
  • kakashi8841
  • 2014年03月05日 13:47
  • 4277

【NGUI】屏幕自适应(不用UIStretch,用UIRoot)

这篇文章是转载的,之前用UIStretch做屏幕自适应,但一直有两个硬伤让我难受,一是屏幕被随意拉伸后,里面的UI就不是我想要的比例了,明明一个圆形变成椭圆了,一个高挑的美女变成一个肥姐了,好吧,这如...
  • lzhq1982
  • lzhq1982
  • 2014年01月27日 14:59
  • 7176

Unity3D开发(一):NGUI之UIRoot屏幕分辨率自适应

NGUI在Unity3D游戏开发中非常常用,而NGUI对于每一个UI场景,都是以一个UIRoot为UI游戏对象树的根的,那么这个UIRoot是起什么作用的呢? 先简单看一下UIRoot中的基本属性 ...
  • oneRain88
  • oneRain88
  • 2013年09月15日 21:56
  • 53222

Unity3D NGUI自适应屏幕分辨率

1.根据高度自适应屏幕分辨率。 NGUI根目录的UIRoot组件自带了根据高度自适应分辨率的功能。 Scaling Style属性可选择三种不同的缩放策略。 PixelPerfect 完美像素...
  • luckydog1120446388
  • luckydog1120446388
  • 2013年12月04日 17:20
  • 2203

NGUI之UIRoot

xia'mia 概述 UIRoot总是放在NGUI UI层级的最上层。 它用来使UI的缩放变得更容易。widget通常使用的是以像素为单位的坐标,但是一个800*400(dimens...
  • Monzart7an
  • Monzart7an
  • 2014年04月10日 16:53
  • 3412
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Unity3D】【NGUI】UIRoot
举报原因:
原因补充:

(最多只允许输入30个字)