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

58 lines
1.6 KiB
C#

using UnityEngine;
using Script.Gameplay.Interface;
namespace Script.Gameplay.Edit
{
[RequireComponent(typeof(Rigidbody))]
public class RigidbodyEditableController : 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 (_rigidbody != null)
_rigidbody.isKinematic = !isOpenInEditor;
}
}
public string ComponentName { get; set; } = "Rigidbody";
private Rigidbody _rigidbody;
private void Awake()
{
_rigidbody = GetComponent<Rigidbody>();
//应用序列化的初始状态
<<<<<<< HEAD
_rigidbody.isKinematic = !IsEnableEdit;
=======
_rigidbody.isKinematic = !isOpenInEditor;
>>>>>>> 2f1ad467aab3adc0a2a8675567ff130fa4202138
}
#if UNITY_EDITOR
private void OnValidate()
{
//在编辑器中即时生效
_rigidbody = _rigidbody == null ? GetComponent<Rigidbody>() : _rigidbody;
if (_rigidbody != null)
<<<<<<< HEAD
_rigidbody.isKinematic = !IsEnableEdit;
=======
_rigidbody.isKinematic = !isOpenInEditor;
>>>>>>> 2f1ad467aab3adc0a2a8675567ff130fa4202138
}
#endif
}
}