using System; using AibisDream.Utility; using UnityEngine; using UnityEngine.Events; using UnityEngine.Localization.Components; namespace AibisDream { /// /// 表单项父类 /// public abstract class AbsFormItem : MonoBehaviour { #region 数据部分 public string prop; public string label; public abstract FieldType FieldType { get; } #endregion #region 索引部分 private LocalizeStringEvent _labelRef; public UnityEvent OnValueChanged; #endregion private void Awake() { InitItem(); } /// /// 初始化FormItem /// private void InitItem() { // label设置 _labelRef = transform.Find("Label").GetComponent(); _labelRef.SetTable(ConstRef.UITextTable); _labelRef.SetEntry(label); // field设置 InitField(); } protected abstract void InitField(); public abstract void SetValue(string value); } public enum FieldType { Input, Slider, Select, Dropdown } [Serializable] public struct UIFormOption { public string prop; public string label; } }