2026-06-02 12:55:39 -04:00
|
|
|
|
using SLSUtilities.Narrative;
|
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Cielonos.MainGame.Narrative
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
2026-06-12 17:11:39 -04:00
|
|
|
|
/// 自动计时器剧情触发器。
|
2026-06-02 12:55:39 -04:00
|
|
|
|
/// 当场景加载完成并且该脚本执行 Start 生命周期时,自动启动指定剧情(常用于关卡旁白、开场白或开局引导)。
|
|
|
|
|
|
/// </summary>
|
2026-06-12 17:11:39 -04:00
|
|
|
|
public class TimerNarrativeTrigger : NarrativeTrigger
|
2026-06-02 12:55:39 -04:00
|
|
|
|
{
|
|
|
|
|
|
[Header("Start Trigger Settings")]
|
|
|
|
|
|
[SerializeField]
|
|
|
|
|
|
[Tooltip("延迟触发时间(秒)。0 表示立即触发。")]
|
|
|
|
|
|
private float delaySeconds = 0f;
|
|
|
|
|
|
|
|
|
|
|
|
private void Start()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (delaySeconds > 0f)
|
|
|
|
|
|
{
|
|
|
|
|
|
Invoke(nameof(ExecuteStartTrigger), delaySeconds);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
ExecuteStartTrigger();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void ExecuteStartTrigger()
|
|
|
|
|
|
{
|
|
|
|
|
|
// 一次性触发器安全保护
|
2026-06-12 17:11:39 -04:00
|
|
|
|
if (once && hasTriggered)
|
2026-06-02 12:55:39 -04:00
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Debug.Log($"[StartNarrativeTrigger] 场景启动自动触发剧情故事 ID: '{storyId}',延迟: {delaySeconds} 秒");
|
2026-06-12 17:11:39 -04:00
|
|
|
|
Trigger();
|
2026-06-02 12:55:39 -04:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|