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
|
|
}
|
|
}
|