using System; using System.Collections.Generic; using Script.Gameplay.Player; using UnityEngine; using Script.Gameplay.Interface; using Script.Gameplay.Connect; namespace Script.Gameplay.Facility { public class DoorInteractController : BaseFacilityController { private bool isOpened = false; public override string GetInteractPrompt() { return "按F进行交互"; } public override void Interact(GameObject interactor) { if (isOpened) { CloseDoor(); isOpened = false; } else { OpenDoor(); isOpened = true; } } public override void OnGazeEnter(GameObject go) { // 可扩展:门被注视时的逻辑 } public override void OnGazeExit(GameObject go) { // 可扩展:门离开注视时的逻辑 } private void OpenDoor() { transform.rotation = Quaternion.Euler(transform.rotation.eulerAngles + new Vector3(0, -90, 0)); } private void CloseDoor() { transform.rotation = Quaternion.Euler(transform.rotation.eulerAngles + new Vector3(0, 90, 0)); } public override void OnSignalReceived(bool active, GameObject sender) { base.OnSignalReceived(active, sender); Interact(sender); } } }