Files
2025TapTapGameJam/Assets/Script/Gameplay/Edit/ColliderEditableController.cs

51 lines
1.3 KiB
C#
Raw Normal View History

using UnityEngine;
using Script.Gameplay.Interface;
namespace Script.Gameplay.Edit
{
[RequireComponent(typeof(Collider))]
public class ColliderEditableController : MonoBehaviour, IEditableComponent
{
[SerializeField] private bool isEnableEdit = true;
public bool IsEnableEdit
{
get => isEnableEdit;
set => isEnableEdit = value;
}
[SerializeField] private bool isOpenInEditor = true;
public bool IsOpenInEditor
{
get => isOpenInEditor;
set
{
isOpenInEditor = value;
if (_collider != null)
_collider.enabled = isOpenInEditor;
}
}
public string ComponentName { get; set; } = "Collider";
private Collider _collider;
private void Awake()
{
_collider = GetComponent<Collider>();
// 应用序列化的初始状态
_collider.enabled = IsOpenInEditor;
}
#if UNITY_EDITOR
private void OnValidate()
{
// 在编辑器中即时生效
_collider = _collider == null ? GetComponent<Collider>() : _collider;
if (_collider != null)
_collider.enabled = IsOpenInEditor;
}
#endif
}
}