using System; using Gameplay.Player; using UnityEngine; using Interface; namespace Script.Gameplay.Facility { public class DoorInteractController : InteractableBaseController, IEditableComponent { [SerializeField] private LockLevel lockLevel; [SerializeField] private bool isActive = true; public bool IsActive { get => isActive; set { isActive = value; //具体被编辑的逻辑 Interactable = isActive; } } public string ComponentName { get; set; } = "DoorSwitch"; public LockLevel LockLevel => lockLevel; private bool isOpened = false; public override void Interact(GameObject interactor) { if (isOpened) { CloseDoor(); isOpened = false; } else { OpenDoor(); isOpened = true; } } private void OpenDoor() { Debug.Log("Open door"); } private void CloseDoor() { Debug.Log("Close door"); } } }