refactor():重构编辑系统,不再需要添加额外的脚本作为可编辑的入口了

This commit is contained in:
2025-10-21 16:40:41 +08:00
parent 1ce3d1a0d8
commit 93b83b3af3
37 changed files with 186 additions and 199 deletions

View File

@@ -1,43 +0,0 @@
using UnityEngine;
using Script.Gameplay.Interface;
namespace Script.Gameplay.Facility
{
[RequireComponent(typeof(Rigidbody))]
public class RigidbodyEditableController : MonoBehaviour, IEditableComponent
{
[SerializeField] private bool isActive = true;
public bool IsEditableActive
{
get => isActive;
set
{
isActive = value;
//具体被编辑的逻辑
_rigidbody.isKinematic = !isActive;
}
}
public string ComponentName { get; set; } = "Rigidbody";
public LockLevel LockLevel { get; } = LockLevel.Red;
private Rigidbody _rigidbody;
private void Awake()
{
_rigidbody = GetComponent<Rigidbody>();
//应用序列化的初始状态
_rigidbody.isKinematic = !isActive;
}
#if UNITY_EDITOR
private void OnValidate()
{
//在编辑器中即时生效
_rigidbody = _rigidbody == null ? GetComponent<Rigidbody>() : _rigidbody;
if (_rigidbody != null)
_rigidbody.isKinematic = !isActive;
}
#endif
}
}