52 lines
1.2 KiB
C#
52 lines
1.2 KiB
C#
using UnityEngine;
|
||
|
||
namespace XericUI.VisualForm
|
||
{
|
||
/// <summary>
|
||
/// 虚拟窗体基类,提供基础的窗体标记功能
|
||
/// </summary>
|
||
[AddComponentMenu("Xeric UI Vessel/AnchorWindow/XvFormBase")]
|
||
public class XvFormBase : MonoBehaviour
|
||
{
|
||
[SerializeField]
|
||
private string m_FormID;
|
||
|
||
/// <summary>
|
||
/// 窗体唯一标识
|
||
/// </summary>
|
||
public string FormID
|
||
{
|
||
get => m_FormID;
|
||
set => m_FormID = value;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 窗体是否处于活动状态
|
||
/// </summary>
|
||
public bool IsFormActive => gameObject.activeInHierarchy && enabled;
|
||
|
||
protected virtual void Awake()
|
||
{
|
||
TryGenerateFormID();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 尝试自动生成FormID(如果当前为空)
|
||
/// </summary>
|
||
private void TryGenerateFormID()
|
||
{
|
||
if (string.IsNullOrEmpty(m_FormID))
|
||
{
|
||
m_FormID = ((uint)GetInstanceID()).ToString();
|
||
}
|
||
}
|
||
|
||
#if UNITY_EDITOR
|
||
protected virtual void OnValidate()
|
||
{
|
||
TryGenerateFormID();
|
||
}
|
||
#endif
|
||
}
|
||
}
|