如何延迟我在 Unity 中切换场景的脚本?
How can I delay my script for switching scenes in Unity?
我有一个脚本已连接到 Unity 中的一个切换场景的按钮,但我也有一个动画我想在按下按钮后播放。按钮启动那个动画,但是你看不到动画,因为场景切换太快了。
我尝试过使用协程和计时器,但我不具备如何完全实现它们的技术知识。
如果可能的话,我更愿意使用协程。
我的代码是:
public void LoadNextScene()
{
int currentSceneIndex = SceneManager.GetActiveScene().buildIndex;
SceneManager.LoadScene(currentSceneIndex + 1);
}
public void LoadMenuScene()
{
SceneManager.LoadScene(0);
}
}
我想要按下按钮,然后播放动画,最后切换场景。您能否推荐所需的代码更改来实现我的愿望?
有几种不同的方法可以完成您所描述的事情。三个最受欢迎的事件是 Co-routines、调用和动画事件。
最简单的是调用,这里是您在调用中实现的代码示例。只需调用 '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);
}
动画事件可能是最 "professional" 的方式,因为这样您就可以更好地委派责任。 Here 是对 Unity 网站的 link。
使用 Co-Routines 的解决方案看起来很像 invoke,但由于您不需要很多高级功能,因此 Invoke 更快且更易于使用。
祝你的项目好运! :)
我有一个脚本已连接到 Unity 中的一个切换场景的按钮,但我也有一个动画我想在按下按钮后播放。按钮启动那个动画,但是你看不到动画,因为场景切换太快了。
我尝试过使用协程和计时器,但我不具备如何完全实现它们的技术知识。
如果可能的话,我更愿意使用协程。 我的代码是:
public void LoadNextScene()
{
int currentSceneIndex = SceneManager.GetActiveScene().buildIndex;
SceneManager.LoadScene(currentSceneIndex + 1);
}
public void LoadMenuScene()
{
SceneManager.LoadScene(0);
}
}
我想要按下按钮,然后播放动画,最后切换场景。您能否推荐所需的代码更改来实现我的愿望?
有几种不同的方法可以完成您所描述的事情。三个最受欢迎的事件是 Co-routines、调用和动画事件。
最简单的是调用,这里是您在调用中实现的代码示例。只需调用 '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);
}
动画事件可能是最 "professional" 的方式,因为这样您就可以更好地委派责任。 Here 是对 Unity 网站的 link。
使用 Co-Routines 的解决方案看起来很像 invoke,但由于您不需要很多高级功能,因此 Invoke 更快且更易于使用。
祝你的项目好运! :)