Coroutine不会在场景之间启动

时间:2017-11-29 09:02:51

标签: c# unity3d unityscript coroutine

我有一个带有代码的主菜单场景

void Start()
{
    StartCoroutine (FadeIn());
}

IEnumerator FadeIn()
{
    whiteFadeInAnim.Play("whiteEntryMenu");
    yield return new WaitUntil(()=>whiteFadeIn.color.a==0);
    ShowMainMenu();
    Debug.Log ("Coroutine started");
}

whiteFadeInAnim.Play("whiteEntryMenu");逐渐减少白精灵游戏对象的alpha值。然后,ShowMainMenu()显示带有一些动画的菜单按钮。我玩的时候场景很好用。但是,当我尝试使用 - SceneManager.LoadScene("menu");从另一个场景加载此场景时,没有任何反应。菜单场景已加载,但我只能看到白色精灵,并且不会显示调试日志。也没有显示错误。为什么会这样?

1 个答案:

答案 0 :(得分:1)

由于我无法评论您的问题,我会将此作为答案发布。

首先检查你的脚本和它所在的GameObject是否在加载后是否在场景中处于活动状态。(GameObject和脚本名称的蓝色标记)

您可能还想尝试除Start()之外的其他方法,例如OnEnable()可能会给您相同的输出,因为脚本将在场景开始时启用(如果它保存为启用脚本),但有了它,您也可以重用您的脚本,而无需重新加载场景。 (与Start()

一样

此外,您可能需要阅读this以了解执行MonoBehaviour方法的顺序方面的任何问题。