using System.Collections; using System.Collections.Generic; using UnityEngine; namespace TFramework { public abstract class BindDataBase { protected List m_UIs; private T _data; public T Data { get => _data; set { _data = value; DataValueChangeEvent(); } } /// /// 数据改变事件 /// protected abstract void DataValueChangeEvent(); /// /// 绑定UI /// /// public virtual void Bind(UIBehaviour uI) { m_UIs.Add(uI); BindEvent(uI); } protected abstract void BindEvent(UIBehaviour uI); protected virtual void Bind(IEnumerable uIs) { foreach (var item in uIs) Bind(item); } public BindDataBase() { m_UIs = new List(); } public BindDataBase(UIBehaviour uI) { m_UIs = new List(); Bind(uI); } public BindDataBase(IEnumerable uIs) { m_UIs = new List(); Bind(uIs); } } }