【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控件说明(中文) UIWidget

原文:http://www.tasharen.com/forum/index.php?topic=6702.0 NGUI讨论群:333417608 概述 UIWidget是NGUI的基础组件。简单...

unity3d ngui 美工图的位置换算

  • 2017年06月05日 14:23
  • 382B
  • 下载

unity3D学习之NGUI插件

  • 2016年04月11日 00:21
  • 18.18MB
  • 下载

unity3d学习笔记(十)--NGUI制作中文字体

本系列文章由Aimar_Johnny编写,欢迎转载,转载请标明出处,谢谢。 http://blog.csdn.net/lzhq1982/article/details/12750985 ...

Unity3d插件NGUI

  • 2012年03月26日 17:38
  • 5.18MB
  • 下载

Unity3d NGUI 2.6.2(最新完整版)

  • 2013年06月13日 09:16
  • 11.1MB
  • 下载

Unity3D中Resources动态加载NGUI图片的方法!!!

网址:http://blog.csdn.net/zhuangyou123/article/details/21406343 在NGUI中有些图片我需要动态进行变更或者加载,怎么办? 首先在项目...

Unity3D NGUI part 2

  • 2012年04月17日 12:23
  • 4.42MB
  • 下载

Unity3D NGUI动态创建按钮

以动态创建服务器列表为例。 public UIAtlas mAtlas; public UIFont mFont; public string mSriteName; pub...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Unity3D】【NGUI】UIAnchor
举报原因:
原因补充:

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