You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity新手求助:如何让Boss攻击模式结束后10秒再次触发?

Unity中Boss攻击模式结束后10秒重启的实现方法

针对新手,这里提供两种简单易懂的实现方式,你可以根据自己的代码习惯选择:

方法一:用协程(Coroutine)处理延迟

协程是Unity专门用来处理这类延迟/分步逻辑的工具,新手容易上手:

  • 先写好攻击模式的启动和结束方法:
// 启动Boss攻击模式的方法
void StartBossPattern()
{
    // 这里写你的攻击逻辑:播放攻击动画、发射技能等
    Debug.Log("Boss开始攻击");
}

// 攻击模式结束时必须调用这个方法
void OnBossPatternEnd()
{
    Debug.Log("Boss攻击模式结束");
    // 启动延迟重启的协程
    StartCoroutine(RestartAfterDelay(10f));
}
  • 再写处理延迟的协程:
// 延迟指定秒数后重启攻击模式
IEnumerator RestartAfterDelay(float delaySeconds)
{
    // 等待10秒
    yield return new WaitForSeconds(delaySeconds);
    // 时间到了,重新启动攻击模式
    StartBossPattern();
}

方法二:用Invoke()方法快速实现

如果觉得协程有点绕,用Invoke()更简洁,一行代码搞定延迟:

void OnBossPatternEnd()
{
    Debug.Log("Boss攻击模式结束");
    // 10秒后自动调用StartBossPattern方法
    Invoke(nameof(StartBossPattern), 10f);
}

void StartBossPattern()
{
    // 攻击逻辑写在这里
    Debug.Log("Boss开始攻击");
}

关键提醒

  • 一定要保证OnBossPatternEnd()在攻击真的结束时被触发,比如攻击动画播放完的回调、技能全部释放完毕的时机。
  • 如果Boss可能在延迟期间被打死,记得在Boss死亡逻辑里加StopAllCoroutines()(用协程的情况)或者CancelInvoke()(用Invoke的情况),避免死后还触发攻击。

内容的提问来源于stack exchange,提问作者abnormal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 02:05:23