66 lines
1.3 KiB
C#
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;
|
|
}
|
|
}
|