【Unity3D】【NGUI】UIAnchor

翻译 2013年12月06日 00:03:13

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

NGUI讨论群:333417608

概览

UIAnchor让你可以固定game objects在屏幕或者其他widgets的某一边或者某一个角。这是一个关键的组件,用来在NGUI中创建模块化的UI。 

   

是否想让你的一部分UI粘在屏幕的角落或者边缘上?比如魔兽世界。在这个游戏中,游戏地图永远在屏幕的右上角,热键一直在屏幕的下方,不管你用的是多大的屏幕分辨率。你如何做到类似的东西呢?用anchors。

NGUI的默认UI布局会给你提供一个anchor——一个居中的anchor。以魔兽世界的UI为例子,你需要增加额外的两个anchor。一个设置成TopRight,另一个则为Bottom。之后你给这两个anchor增加一些子节点,然后修改屏幕的尺寸,你会发现UI会一直在你想要的地方(右上方或者下面)。

通过设置anchor的Container让一个UI附着在另一个UI上。如果Container是UIWidget,那么会用widget的dimesions来代替屏幕矩形(就是TopRight将将是相对与这个widget,而不是屏幕)。如果是game object,那么这个矩形就是game object下的所有节点widget的bounds。因为这个原因,当你用父节点当做Container的时候一定要注意,因为父节点的Container大小会包含这个你要anchor的widget,这可能不是你要的效果(比如你要放在父节点的左上角,但是当这个widget到了左上角后,父节点的左上角由于这个widget的到来可能就变了,之后再次移动widget,周而复始……)。

调整Relative Offset来用相对值来改变位置。 如果X是1就是100%的container宽度. Y是1就是100%的container高度。 0.5 = 50%,等等。也可以是负数。

上面的调整也可以通过用Pixel Offset来实现。就和你想的差不多……通过给定的X、Y的值来
以像素为单位调整anchor的偏移。


默认情况下anchor只会执行一次。如果要在每个update里面都执行,那勾选掉Run Only Once选项。

小贴士

你可以通过使用anchor和stretch来创建模块化的UI:
http://www.youtube.com/watch?v=q1C5NwZasGs

类文档

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

NGUI控件说明(中文) UIAnchor

原文:http://www.tasharen.com/forum/index.php?topic=6712.0 概览 UIAnchor让你可以固定game objects在屏幕...
  • huang9012
  • huang9012
  • 2014年02月24日 10:43
  • 8061

NGUI开发优化技巧(上)

UGUI和NGUI的区别: 使用率:NGUI占大多数,NGUI和UGUI的使用占比为81% : 19%; 易用性:NGUI占一定优势,UGUI仍在慢慢改善; 性能:如果都合理搭配...
  • bianchengxiaosheng
  • bianchengxiaosheng
  • 2017年05月23日 21:03
  • 339

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

前言 鉴于当前游戏开发的大势,Unity3d的发展势头超乎我的预期,作为一个Flash开发者,也是为Flash在游戏开发尤其是手游开发中 的地位感到担忧....所以 最近一段时间都在自己学习unity...
  • gtncwy
  • gtncwy
  • 2014年07月10日 12:25
  • 19799

unity3D游戏开发十四之NGUI一

在Unity中,可以使用代码控制其自身所携带的GUI来sh
  • kuloveyouwei
  • kuloveyouwei
  • 2014年04月14日 17:39
  • 16110

Unity3D NGUI系列教程一

首先导入NGUI package,这里我们选用的是2.6.3版本的NGUI。在unity工程窗口中点击右键选择 Importpackageàcustom package,选择你下载的NGUI插件,导...
  • poem_of_sunshine
  • poem_of_sunshine
  • 2013年12月09日 15:09
  • 21937

[Unity3D]事半功倍:界面插件NGUI的使用教程与实例

原文地址:http://www.tasharen.com/?page_id=185 NGUI下载地址:点我传送 NGUI教程:步骤1-Scene 1.创建一个新的场景(New Sce...
  • wxg694175346
  • wxg694175346
  • 2013年01月29日 23:10
  • 30712

[NGUI插件] 最全的NGUI各个版本插件下载地址(最新版本3.8.2)

转载至:最全的NGUI各个版本插件下载地址(最新版本3.8.2) http://forum.exceedu.com/forum/forum.php?mod=viewthread&tid=27146&...
  • z9895512
  • z9895512
  • 2015年07月17日 08:44
  • 17356

unity3D,NGUI中button响应事件实现

最近做的一个项目,是鼠标点击左键在plane上画线,其中,界面上有NGUI的button,点击用来改变线的颜色,显然主要画线脚本绑定在摄像头上面,而button响应事件的脚本绑定在对应的button上...
  • u012805027
  • u012805027
  • 2013年12月03日 10:50
  • 4169

【NGUI学习之二】NGUI所见即所得之UIAnchor & UIStretch

本文转自http://dsqiu.iteye.com/blog/1964679,感谢DSQiu同学的分享。  NGUI所见即所得之UIAnchor & UIStretch   ...
  • transport1987
  • transport1987
  • 2014年06月27日 10:07
  • 2684

Unity3D种UGUI与NGUI的对比差别(2)

层级管理概念 UGUI采用Hierarchy排序的方式,替代了NGUI中的Depth排序。 更精准的说,NGUI的排序是通过Depth、Z值、RenderQueue共同影响的,整体规则过于复杂...
  • just_do_it2009
  • just_do_it2009
  • 2017年03月09日 16:52
  • 2201
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Unity3D】【NGUI】UIAnchor
举报原因:
原因补充:

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