2025-10-18 11:56:50 +08:00
|
|
|
using UnityEngine;
|
2025-10-20 09:02:15 +08:00
|
|
|
using Script.Gameplay.Interface;
|
2025-10-18 11:56:50 +08:00
|
|
|
|
2025-10-21 16:40:41 +08:00
|
|
|
namespace Script.Gameplay.Edit
|
2025-10-18 11:56:50 +08:00
|
|
|
{
|
|
|
|
|
[RequireComponent(typeof(Rigidbody))]
|
|
|
|
|
public class RigidbodyEditableController : MonoBehaviour, IEditableComponent
|
|
|
|
|
{
|
2025-10-22 17:34:58 +08:00
|
|
|
[SerializeField] private bool isEnableEdit = true;
|
2025-10-18 11:56:50 +08:00
|
|
|
|
2025-10-22 17:34:58 +08:00
|
|
|
public bool IsEnableEdit
|
2025-10-18 11:56:50 +08:00
|
|
|
{
|
2025-10-22 17:34:58 +08:00
|
|
|
get => isEnableEdit;
|
|
|
|
|
set => isEnableEdit = value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[SerializeField] private bool isOpenInEditor = true;
|
|
|
|
|
|
|
|
|
|
public bool IsOpenInEditor
|
|
|
|
|
{
|
|
|
|
|
get => isOpenInEditor;
|
2025-10-18 11:56:50 +08:00
|
|
|
set
|
|
|
|
|
{
|
2025-10-22 17:34:58 +08:00
|
|
|
isOpenInEditor = value;
|
|
|
|
|
if (_rigidbody != null)
|
|
|
|
|
_rigidbody.isKinematic = !isOpenInEditor;
|
2025-10-18 11:56:50 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string ComponentName { get; set; } = "Rigidbody";
|
|
|
|
|
private Rigidbody _rigidbody;
|
2025-10-22 17:34:58 +08:00
|
|
|
|
2025-10-18 11:56:50 +08:00
|
|
|
private void Awake()
|
|
|
|
|
{
|
|
|
|
|
_rigidbody = GetComponent<Rigidbody>();
|
|
|
|
|
//应用序列化的初始状态
|
2025-10-25 15:43:10 +08:00
|
|
|
<<<<<<< HEAD
|
2025-10-22 17:34:58 +08:00
|
|
|
_rigidbody.isKinematic = !IsEnableEdit;
|
2025-10-25 15:43:10 +08:00
|
|
|
=======
|
2025-10-25 11:55:31 +08:00
|
|
|
_rigidbody.isKinematic = !isOpenInEditor;
|
2025-10-25 15:43:10 +08:00
|
|
|
>>>>>>> 2f1ad467aab3adc0a2a8675567ff130fa4202138
|
2025-10-18 11:56:50 +08:00
|
|
|
}
|
2025-10-22 17:34:58 +08:00
|
|
|
|
2025-10-18 11:56:50 +08:00
|
|
|
#if UNITY_EDITOR
|
|
|
|
|
private void OnValidate()
|
|
|
|
|
{
|
|
|
|
|
//在编辑器中即时生效
|
|
|
|
|
_rigidbody = _rigidbody == null ? GetComponent<Rigidbody>() : _rigidbody;
|
|
|
|
|
if (_rigidbody != null)
|
2025-10-25 15:43:10 +08:00
|
|
|
<<<<<<< HEAD
|
2025-10-22 17:34:58 +08:00
|
|
|
_rigidbody.isKinematic = !IsEnableEdit;
|
2025-10-25 15:43:10 +08:00
|
|
|
=======
|
2025-10-25 11:55:31 +08:00
|
|
|
_rigidbody.isKinematic = !isOpenInEditor;
|
2025-10-25 15:43:10 +08:00
|
|
|
>>>>>>> 2f1ad467aab3adc0a2a8675567ff130fa4202138
|
2025-10-18 11:56:50 +08:00
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
}
|