我有一个脚本,已连接到 Unity 中切换场景的按钮,但我也有一个想要在按下按钮后播放的动画。该按钮启动该动画,但您看不到动画,因为场景切换太快。
我尝试过使用协程和计时器,但我不知道如何完全实现它们。
如果可能的话,我更喜欢使用协程。 我的代码是:
public void LoadNextScene()
{
int currentSceneIndex = SceneManager.GetActiveScene().buildIndex;
SceneManager.LoadScene(currentSceneIndex + 1);
}
public void LoadMenuScene()
{
SceneManager.LoadScene(0);
}
}
我想要按下按钮,然后播放动画,最后切换场景。您能否推荐所需的代码更改来实现我的愿望?
最佳答案
有几种不同的方法可以实现您所描述的操作。最流行的三种是协同例程、调用和动画事件。
最简单的是调用,下面是在调用中实现的代码示例。只需调用“CallLoadNextScene”即可。
public void CallLoadNextScene()
{
Invoke("LoadNextScene",yourDelay);
}
public void LoadNextScene()
{
int currentSceneIndex = SceneManager.GetActiveScene().buildIndex;
SceneManager.LoadScene(currentSceneIndex + 1);
}
public void CallLoadMenu(int id)
{
Invoke("LoadMenuScene",yourDelay);
}
public void LoadMenuScene()
{
SceneManager.LoadScene(0);
}
动画事件可能是最“专业”的方式来做到这一点,因为这样你就可以更好地委派责任。 Here是 Unity 网站的链接。
使用协同例程的解决方案看起来很像调用,但由于您不需要很多高级功能,因此调用更快且更易于使用。
祝您的项目顺利! :)
关于c# - 如何延迟 Unity 中切换场景的脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56744313/