gpt4 book ai didi

c# - Unity2D : Delay before SceneManager loads the next scene

转载 作者:行者123 更新时间:2023-12-04 14:12:14 26 4
gpt4 key购买 nike

我知道以前有人问过这个问题,但我无法正确实现。当我的播放器与标有“死亡”或“下一级”的某些对象发生碰撞时,它们会加载各自的场景,但我希望在 SceneManager 加载下一个场景之前延迟

private void OnTriggerEnter2D(Collider2D other)

if (other.gameObject.CompareTag("Next"))

// I want about a 1 second delay here//

{ SceneManager.LoadScene("Level 2"); }
希望你们能帮助我,非常感谢帮助。

最佳答案

听起来您想在执行一段代码之前等待几秒钟。这通常是不可能的,因为 Unity 在绘制下一帧之前等待代码完成执行。
相反,您想要的是一些可以在继续之前等待一定数量的帧的代码。为此,Coroutines被使用。
所以当玩家被击中时,你想启动一个协程,在等待 1 秒后加载下一个场景。
像这样定义协程:

IEnumerator NextLevelAfterWait() {
yield return new WaitForSeconds(1.0f);

SceneManager.LoadScene("Level 2");
}
然后在正确的时间调用协程,如下所示:
private void OnTriggerEnter2D(Collider2D other) {
if (other.gameObject.CompareTag("Next"))
StartCoroutine(NextLevelAfterWait());
}

关于c# - Unity2D : Delay before SceneManager loads the next scene,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63372547/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com