using UnityEngine; namespace AibisDream { public class SettingForm : MonoBehaviour, IUIForm { #region 索引 private AbsFormItem[] _formItems; #endregion public void Init() { // 获取索引 _formItems = GetComponentsInChildren(); UpdateForm(); // 绑定变化 foreach (var formItem in _formItems) { formItem.OnValueChanged.AddListener(OnItemChanged); } } public void UnInit() { // 绑定变化 foreach (var formItem in _formItems) { formItem.OnValueChanged.RemoveAllListeners(); } } public void OnItemChanged(string propName, string value) { SettingLoader.Instance.Write(propName, value); } public void UpdateForm() { var settingDict = SettingLoader.Instance.ReadAll(); foreach (var formItem in _formItems) { if (settingDict.TryGetValue(formItem.prop, out var value)) { formItem.SetValue(value); } } } public void UpdateFormData() { } } }