34 lines
1.1 KiB
C#
34 lines
1.1 KiB
C#
using SLSUtilities.Narrative;
|
|
using UnityEngine;
|
|
|
|
namespace Cielonos.MainGame.Narrative
|
|
{
|
|
/// <summary>
|
|
/// 区域剧情触发器。
|
|
/// 挂载在具有 Trigger 碰撞体 (Collider) 的 GameObject 上,当玩家角色进入该触发区域时激活剧情。
|
|
/// </summary>
|
|
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();
|
|
}
|
|
}
|
|
}
|
|
}
|