using SLSUtilities.Narrative; using UnityEngine; namespace Cielonos.MainGame.Narrative { /// /// 区域剧情触发器。 /// 挂载在具有 Trigger 碰撞体 (Collider) 的 GameObject 上,当玩家角色进入该触发区域时激活剧情。 /// public class AreaNarrativeTrigger : NarrativeTrigger { [Header("Area Trigger Settings")] [SerializeField] [Tooltip("触发所对应的玩家 GameObject 标签 (Tag) 标识,默认为 'Player'")] private string playerTag = "Player"; private void OnTriggerEnter(Collider other) { // 如果是一次性触发器且已经激活过,直接忽略 if (oneShot && hasFired) { return; } // 校验进入触发器的对象是否为玩家 if (other.CompareTag(playerTag)) { Debug.Log($"[AreaNarrativeTrigger] 玩家进入区域 '{gameObject.name}',激活剧情故事 ID: '{storyId}'"); Fire(); } } } }