34 lines
1.3 KiB
C#
34 lines
1.3 KiB
C#
using UnityEngine;
|
||
using BaseGames.Core;
|
||
using BaseGames.Core.Events;
|
||
|
||
namespace BaseGames.World
|
||
{
|
||
/// <summary>
|
||
/// 传送点。玩家互动后打开快速旅行面板(由 UIManager 响应 EVT_FastTravelOpen)。
|
||
/// 与存档点(SavePoint)完全独立:传送点不存档、不复活、不恢复 HP。
|
||
/// </summary>
|
||
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() { }
|
||
}
|
||
}
|