关于NGUI的Anchor实现对齐,按钮事件脚步,下面通过找到的一篇文章让大家了解一下。

      大家在放不同UI到root里面的时候,可能会发现一个问题,有时候一些UI会莫名其妙的移动位置。导致原本已经排好对齐的UI又乱了。

      这时候就要用到NGUI的anchor脚本了,这个脚步用的是非常普遍的。

      Anchor简单点来说是实现GUI的对齐功能的。我以之前做的登录界面为例

NGUI的Anchor实现对齐,按钮事件脚步

      上面可以看到我已经为每个UI都添加了一个UIAnchor脚步。可以在菜单栏添加,也可以在inspector的addcomponent里,如下图

NGUI的Anchor实现对齐,按钮事件脚步

                            NGUI的Anchor实现对齐,按钮事件脚步      

下面我们来看看anchor的脚步参数

               NGUI的Anchor实现对齐,按钮事件脚步

       其中Container如果你不设置的话,默认是以上面的UICamera为对齐目标。如果设置了container。就如我上面设置了container是sprite。
       也就是我登录界面的背景。那他后面的offset设置将会以sprite为目标来移动。
       Side的意思就是中心点,分上下左右等8个中心点。大家可以自己调试下。
       Relative Offset是相对位移。从最左边移到最右边x的值改变只是从0到1。
而pixel Offset是像素位移。以像素值移动。
       说了那么多,实践才是真理啊。

       还有一个带有UISprite脚步的都会有这个,

                NGUI的Anchor实现对齐,按钮事件脚步

也是anchor的一种。后面四个参数的意思是Target's Left的意思是左边边界以UIRoot的左边为准,加上100个像素。无论你窗口怎么变化,这个sprite的四个边界始终距离Root的四个边是100,-50,100,-50.。

(不知说得大家明白不,还是自己测试下就知道了。请见谅。。。。。)
大家可以试着加label,button,sprite等UI。
 .....................................................完美分界线............................................................................

按钮事件脚步

创建一个脚步名为UIDataHandler.cs。脚步代码如下
[AppleScript] 纯文本查看 复制代码
using UnityEngine;
using System.Collections;
public class UIDataHandler : MonoBehaviour
{
public UIInput nameInput;
public UIInput psInput;
public GameObject loginBtn;
public GameObject registerBtn;
public UILabel tipLabel;
void Start ()
{
 //侦听按钮事件
UIEventListener.Get(loginBtn).onClick = clickHandler;
UIEventListener.Get(registerBtn).onClick = clickHandler;
}
void clickHandler(GameObject go)
{
if(go.name=="loginButton")
{
Debug.Log("登录:" + nameInput.label.text + "," + psInput.label.text);
tipLabel.text = "用户名:" + nameInput.label.text + ",密码:" + psInput.label.text;
}
if (go.name == "registerButton")
{
Debug.Log("注册:"+nameInput.label.text + "," + psInput.label.text);
tipLabel.text = "用户名:" + nameInput.label.text + ",密码:" + psInput.label.text;
}
}
void Update ()
{
}
}

      把这脚本挂载在UI Root上,然后分别给参数赋值

                NGUI的Anchor实现对齐,按钮事件脚步

       运行测试,忘input里写东西。点击按钮你就可以看到控制台有东西了。