refactor(Facility): 使用继承让所有机关都拥有了独自的 可交互 可编辑 可连接设定。大面积重构

This commit is contained in:
2025-10-22 17:34:58 +08:00
parent 3cdd41ea49
commit 3a0b202325
61 changed files with 1516 additions and 889 deletions

View File

@@ -6,22 +6,28 @@ namespace Script.Gameplay.Edit
[RequireComponent(typeof(Collider))]
public class ColliderEditableController : MonoBehaviour, IEditableComponent
{
[SerializeField] private bool isActive = true;
[SerializeField] private bool isEnableEdit = true;
public bool IsComponentActive
public bool IsEnableEdit
{
get => isActive;
get => isEnableEdit;
set => isEnableEdit = value;
}
[SerializeField] private bool isOpenInEditor = true;
public bool IsOpenInEditor
{
get => isOpenInEditor;
set
{
isActive = value;
// 具体被编辑的逻辑:开启或关闭碰撞体
isOpenInEditor = value;
if (_collider != null)
_collider.enabled = isActive;
_collider.enabled = isOpenInEditor;
}
}
public string ComponentName { get; set; } = "Collider";
public LockLevel LockLevel { get; } = LockLevel.Red;
private Collider _collider;
@@ -29,7 +35,7 @@ namespace Script.Gameplay.Edit
{
_collider = GetComponent<Collider>();
// 应用序列化的初始状态
_collider.enabled = isActive;
_collider.enabled = IsOpenInEditor;
}
#if UNITY_EDITOR
@@ -38,7 +44,7 @@ namespace Script.Gameplay.Edit
// 在编辑器中即时生效
_collider = _collider == null ? GetComponent<Collider>() : _collider;
if (_collider != null)
_collider.enabled = isActive;
_collider.enabled = IsOpenInEditor;
}
#endif
}