private void InitBindDatas(GameObject gameObject) { //数组下的内容交给数组来注册了 if (gameObject.GetComponent <UIBindArrayTemplate>() != null) { return; } //注册Group BaseUIBindGroup bindGroup = gameObject.GetComponent <BaseUIBindGroup>(); if (bindGroup) { bindGroup.Init(this); return; } //注册数组 BaseUIBindArray bindArray = gameObject.GetComponent <BaseUIBindArray>(); if (bindArray) { bindArray.Init(this); } var sNodes = StaticObject <List <BaseUINode> > .Instance; //注册事件和绑定 gameObject.GetComponents <BaseUINode>(sNodes); foreach (var component in sNodes) { component.InitOnRoot(this); } sNodes.Clear(); for (int i = 0; i < gameObject.transform.childCount; i++) { InitBindDatas(gameObject.transform.GetChild(i).gameObject); } }
private void InitBindDatas(Transform transform, int index, Transform rootTrans) { if (transform != rootTrans && transform.GetComponent <UIBindArrayTemplate>() != null) { return; } var sNodes = StaticObject <List <BaseUINode> > .Instance; transform.GetComponents <BaseUINode>(sNodes); foreach (var component in sNodes) { component.InitOnArray(root, this, index); } sNodes.Clear(); //注册数组 BaseUIBindArray bindArray = transform.GetComponent <BaseUIBindArray>(); if (bindArray) { bindArray.Init(this.root, this, index); } //注册Group BaseUIBindGroup bindGroup = transform.GetComponent <BaseUIBindGroup>(); if (bindGroup) { bindGroup.Init(this.root, this, index); return; } //防止调不到OnDestroy for (int i = 0; i < transform.childCount; i++) { InitBindDatas(transform.GetChild(i), index, rootTrans); } }
private void InitBindDatas(Transform transform, BaseUIBindContainer parent = null, int arrayIndex = 0) { if (transform.GetComponent <UIBindArrayTemplate>() != null) { return; } var sNodes = StaticObject <List <BaseUINode> > .Instance; transform.GetComponents <BaseUINode>(sNodes); foreach (var component in sNodes) { component.InitOnGroup(root, this, arrayIndex); } sNodes.Clear(); //注册数组 BaseUIBindArray bindArray = transform.GetComponent <BaseUIBindArray>(); if (bindArray) { bindArray.Init(this.root, this, arrayIndex); } //注册Group BaseUIBindGroup bindGroup = transform.GetComponent <BaseUIBindGroup>(); if (bindGroup && bindGroup != this) { bindGroup.Init(this.root, this, arrayIndex); return; } for (int i = 0; i < transform.childCount; i++) { InitBindDatas(transform.GetChild(i), parent, arrayIndex); } }
public void UnbindUIArray(BaseUIBindArray array) { this.bindArrays.Remove(array); }
public void BindUIArray(BaseUIBindArray array) { this.bindArrays.Add(array); }
public virtual void InitOnArray(UIBindRoot root, BaseUIBindArray array, int index) { }
public int CreateCellOnArray(GameObject gameObject, string bindFuncName, string bindDataName, BaseUIBindArray array, int index, object param) { var dataSet = array.Data[index]; UIDataCell cell = new UIDataCell(bindDataName, dataSet, param, gameObject); UIDataCellCallback callback = new UIDataCellCallback(this, bindFuncName, cell); dataSet.AddListener(bindDataName, callback.Run); this.callbacks.Add(callback); return(this.callbacks.Count); }
public void AddRefOnArray(string refName, object value, BaseUIBindArray array, int arrayIndex) { var dataSet = array.Data[arrayIndex]; dataSet.Set(refName, value); }
//初始化,事件注册在Array下 public override void InitOnArray(UIBindRoot root, BaseUIBindArray array, int index) { this.root = root; cellIndex = root.CreateCellOnArray(this.gameObject, this.GetBindFunctionName(), this.bindDataName, array, index, this.GetParam()); }