我有一个脚本,该脚本已连接到Unity中的一个按钮,可以切换场景,但是我还有一个动画,我想在按下按钮后播放该动画。该按钮将启动该动画,但是您无法看到该动画,因为场景切换太快。
我尝试使用协程和计时器,但是我不具备如何完全实现它们的技术知识。
如果可能的话,我宁愿使用协程。 我的代码是:
public void LoadNextScene()
{
int currentSceneIndex = SceneManager.GetActiveScene().buildIndex;
SceneManager.LoadScene(currentSceneIndex + 1);
}
public void LoadMenuScene()
{
SceneManager.LoadScene(0);
}
}
我希望按下按钮,然后播放动画,最后切换场景。您能否推荐所需的代码更改来实现我的愿望?
答案 0 :(得分:2)
有几种不同的方法可以完成您描述的事情。最受欢迎的三种是协同例程,调用和动画事件。
最简单的是调用,这是在调用中实现的代码示例。只需调用“ 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网站的链接。
使用Co-Routines的解决方案看起来很像调用,但是由于您不需要很多高级功能,Invoke更快,更易于使用。
最幸运的项目! :)