新增锚点窗口组件

This commit is contained in:
2026-06-12 09:17:30 +08:00
parent 910101b8e7
commit d4b7848dde
13 changed files with 1217 additions and 0 deletions
+51
View File
@@ -0,0 +1,51 @@
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
}
}