Files
aibis-dream/Assets/Scripts/UI/Form/SettingForm.cs
T
2025-04-24 16:55:00 +08:00

56 lines
1.3 KiB
C#

using UnityEngine;
namespace AibisDream
{
public class SettingForm : MonoBehaviour, IUIForm
{
#region 索引
private AbsFormItem[] _formItems;
#endregion
public void Init()
{
// 获取索引
_formItems = GetComponentsInChildren<AbsFormItem>();
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()
{
}
}
}