C# 在Unity中切换场景的脚本如何延迟?

C# 在Unity中切换场景的脚本如何延迟?,c#,unity3d,animation,delay,C#,Unity3d,Animation,Delay,我有一个脚本,我已经连接到Unity中切换场景的按钮,但我还有一个动画,我想在按下按钮后播放。该按钮将启动该动画,但您无法看到动画,因为场景切换太快 我尝试过使用协同程序和计时器,但我不知道如何完全实现它们 如果可能的话,我更喜欢使用协同程序。 我的代码是: public void LoadNextScene() { int currentSceneIndex = SceneManager.GetActiveScene().buildIndex;

我有一个脚本,我已经连接到Unity中切换场景的按钮,但我还有一个动画,我想在按下按钮后播放。该按钮将启动该动画,但您无法看到动画,因为场景切换太快

我尝试过使用协同程序和计时器,但我不知道如何完全实现它们

如果可能的话,我更喜欢使用协同程序。 我的代码是:

    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。我想这是一个愚蠢的问题,但谢谢