Files
aibis-dream/Assets/Scripts/UI/Form/SettingForm.cs
T
dingyuntian 9f20ef52d8 UI工具翻新
1. 增加UI工具
2. 增加设置页面
3. GameLoop更新
4. 导入ActionKit工具
2025-04-21 18:53:30 +08:00

51 lines
1.2 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);
}
}
}
}
}