refactor(Facility): 使用继承让所有机关都拥有了独自的 可交互 可编辑 可连接设定。大面积重构

This commit is contained in:
2025-10-22 17:34:58 +08:00
parent 3cdd41ea49
commit 3a0b202325
61 changed files with 1516 additions and 889 deletions

View File

@@ -0,0 +1,58 @@
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)
{
Interact(sender);
}
}
}