NGUI的数据绑定

ngui 的binding搜索结果 少之甚少 。即便去作者的youtube也收获不大 。

开发工作者更关心的是 数据的绑定,而不是一个显示控件简单属性的绑定。

说白了就是告诉用户 怎么绑定model吧 。

废话少说

原理依旧是使用组件 propertyBinding

1 addComponent-propertyBinding

2 在propertyBinding 面板设置

  source:2-1源对象

              2-2设置源对象的哪个属性

   target:2-3需要根据源来更新的对象

      2-4 绑定的属性

  direction:设置绑定方向

3 制作源对象 需要挂一个Model.cs类

using UnityEngine;
using System.Collections;
/// <summary>
/// 绑定测试
/// Naiking Q258529531
/// </summary>
public class UserModel : MonoBehaviour {

    // Use this for initialization
    void Start ()
    {
        vo.hp = 100;
        vo.name = "naiking";
    }

    public string name
    {
        get { return vo.name; }
        set { vo.name = value; }
    }
    public int hp
    {
        get { return vo.hp; }
        set { vo.hp = value; }
    }
    private VO vo=new VO();
    // Update is called once per frame
    void Update () {
    
    }
}

4 把model类 挂到一个空的gameObject上

5 新建一个Label 然后添加propertybinding

   源:gameobject

         UserModel.hp

   target:把lable拖进来

          text

然后弄2个按钮 一个是改变model的hp 一个是改变model的name

using System.Security.Permissions;
using UnityEngine;
using System.Collections;

public class sTet : MonoBehaviour {

    // Use this for initialization
    public UIButton btn;
    public UserModel model;
    void Start ()
    {
        btn.GetComponent<UIEventListener>().onClick = changM;
    }

    private void changM(GameObject go)
    {
        model.hp += 3;
        Debug.Log(model.hp.ToString());
    }
    // Update is called once per frame
    void Update () {
    
    }
}
原文地址:https://www.cnblogs.com/naiking/p/3936922.html