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

66 lines
1.3 KiB
C#

using System;
using AibisDream.Utility;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.Localization.Components;
namespace AibisDream
{
/// <summary>
/// 表单项父类
/// </summary>
public abstract class AbsFormItem : MonoBehaviour
{
#region 数据部分
public string prop;
public string label;
public abstract FieldType FieldType { get; }
#endregion
#region 索引部分
private LocalizeStringEvent _labelRef;
public UnityEvent<string, string> OnValueChanged;
#endregion
private void Awake()
{
InitItem();
}
/// <summary>
/// 初始化FormItem
/// </summary>
private void InitItem()
{
// label设置
_labelRef = transform.Find("Label").GetComponent<LocalizeStringEvent>();
_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;
}
}