C# 在Unity中切换场景的脚本如何延迟?
我有一个脚本,我已经连接到Unity中切换场景的按钮,但我还有一个动画,我想在按下按钮后播放。该按钮将启动该动画,但您无法看到动画,因为场景切换太快 我尝试过使用协同程序和计时器,但我不知道如何完全实现它们 如果可能的话,我更喜欢使用协同程序。 我的代码是:C# 在Unity中切换场景的脚本如何延迟?,c#,unity3d,animation,delay,C#,Unity3d,Animation,Delay,我有一个脚本,我已经连接到Unity中切换场景的按钮,但我还有一个动画,我想在按下按钮后播放。该按钮将启动该动画,但您无法看到动画,因为场景切换太快 我尝试过使用协同程序和计时器,但我不知道如何完全实现它们 如果可能的话,我更喜欢使用协同程序。 我的代码是: public void LoadNextScene() { int currentSceneIndex = SceneManager.GetActiveScene().buildIndex;
public void LoadNextScene()
{
int currentSceneIndex = SceneManager.GetActiveScene().buildIndex;
SceneManager.LoadScene(currentSceneIndex + 1);
}
public void LoadMenuScene()
{
SceneManager.LoadScene(0);
}
}
我希望按下按钮,然后播放动画,最后切换场景。您能推荐所需的代码更改以实现我的愿望吗?有几种不同的方法来完成您所描述的内容。三个最流行的是联合例程、调用和动画事件 最简单的是invoke,下面是在invoke中实现的代码示例。只需调用“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);
}
动画活动可能是最“专业”的方式,因为这样你就有了更好的责任授权。是一个连接到Unity网站的链接
使用协同例程的解决方案看起来很像调用,但由于您不需要很多高级功能,因此调用会更快、更易于使用
祝你的项目好运!:) 使用协同程序。会弹出此错误,(当前上下文中不存在名称“invoke”),不确定如何修复itinvoke=>invoke。我想这是一个愚蠢的问题,但谢谢