UIWidget 的作用

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


概述

UIWidget是NGUI的基础组件。简单来说,就是一个你可以放在屏幕任意位置的矩形框。widget会有一定的面积(如下图的白色框范围),但是在运行的时候(Game View)是完全不可见的,所以非常适合当做其他组件的容器(让所有的sprite或者label等以它进行各种对齐)。



UIWidget 也被用来当做所有NGUI元素的基类——所有你创建的sprites和labels。UILabel,UISprite,UITexture和UI2DSprite(Unity3D 4.3版本)都继承自UIWidget。.
  • 把鼠标放到矩形框里面来移动它的位置。
  • 拖动蓝色圆点进行缩放
  • 鼠标放在蓝色原点外面一些,就可以旋转widget。按住shift可以微调(windows上是ctrl)。
  • 加入collider就可以让这个区域接受事件。可以在这个widget上定位其他widgets,具体查看UIAnchor。
  • 在给widget加了box collider之后,widget的inspector上会有一个新的选项:Box Collider。默认是勾选的,它会自动调整使得collider的size和widget的尺寸一样(dimensions)。
  • 增加UIWidget的快捷键是alt+shift+w
widget的position在代码里面通过Transform组件获取——和其他的场景中物体一样。widget的位置与它的Pivot有关。pivot可以理解为这个widget的旋转中心。

Widgets也有Depth属性,控制他们被点击时的响应顺序(在Sprite和Label中也用来控制渲染顺序,值越大,显示的时候越靠前)。在Scene View中右键widget可以看到depth的排序。右键后会看见一个列表(如下图),所有在鼠标位置的widget都会列出来。最上面的就是显示在最前面的,也会最先接收事件。 



这个菜单也提供增加兄弟或者子节点的widget(包括sprite、label等)。

类文档

http://tasharen.com/ngui/docs/class_u_i_widget.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Unity中将十六进制颜色转换为Color可以通过编写自定义的代码来实现。我注意到您提到了NGUI的版本,因此您可以使用NGUI提供的控件来实现这一功能。首先,您需要将十六进制颜色值转换为RGB值,然后将其应用于Color对象。 以下是一个示例代码,说明如何将十六进制颜色转换为Color: 1. 创建一个名为"HexToColor"的脚本,并将其附加到您的游戏对象上。 2. 在脚本中,定义一个公共字符串变量,用于存储十六进制颜色值。例如: ```csharp public string hexColor; ``` 3. 在脚本中,编写一个方法来将十六进制颜色值转换为Color对象。例如: ```csharp public Color HexToColor(string hex) { // 去除颜色字符串中的'#'字符 hex = hex.Replace("#", ""); // 解析十六进制颜色值的红、绿、蓝分量 float r = int.Parse(hex.Substring(0, 2), System.Globalization.NumberStyles.HexNumber) / 255f; float g = int.Parse(hex.Substring(2, 2), System.Globalization.NumberStyles.HexNumber) / 255f; float b = int.Parse(hex.Substring(4, 2), System.Globalization.NumberStyles.HexNumber) / 255f; // 创建并返回Color对象 return new Color(r, g, b); } ``` 4. 在Unity编辑器中,将您的游戏对象上的脚本组件展开,并将十六进制颜色值输入到hexColor字段。 5. 在脚本的其他部分,您可以将hexColor值传递给HexToColor方法,并将其返回的Color对象应用于您想要更改颜色的组件。例如: ```csharp // 获取组件的引用 UIWidget widget = GetComponent<UIWidget>(); // 将十六进制颜色转换为Color对象 Color color = HexToColor(hexColor); // 将颜色应用于组件 widget.color = color; ``` 这样,您就可以使用自定义脚本将十六进制颜色转换为Color对象,并将其应用于NGUI UIWidget组件。注意,这只是一个示例代码,您可能需要根据您的具体需求进行一些调整。希望对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值