using UnityEngine; using BaseGames.Core; using BaseGames.Core.Events; namespace BaseGames.World { /// /// 传送点。玩家互动后打开快速旅行面板(由 UIManager 响应 EVT_FastTravelOpen)。 /// 与存档点(SavePoint)完全独立:传送点不存档、不复活、不恢复 HP。 /// public class TeleportStation : MonoBehaviour, IInteractable { [Header("Config")] [Tooltip("传送站唯一 ID,用于地图 UI 显示和解锁状态查询")] [SerializeField] private string _stationId; [Header("Event Channels - Raise")] [Tooltip("EVT_FastTravelOpen — 触发后由 UIManager 打开快速旅行面板")] [SerializeField] private VoidEventChannelSO _onFastTravelOpen; // ── IInteractable ────────────────────────────────────────────────────── public bool CanInteract => true; public string InteractPrompt => "快速旅行"; public void Interact(Transform player) { _onFastTravelOpen?.Raise(); } public void OnPlayerEnterRange(Transform player) { } public void OnPlayerExitRange() { } } }