好的,我有这个协程:
IEnumerator ShowCharTraits()
{
while(!hasPlayerChosen)
{
yield return null;
traitPanel.SetActive(true);
}
hasPlayerChosen = false;
traitPanel.SetActive(false);
// Debug.Log("Got called! job done");
}
这是从我的GameManager
的唤醒方法中调用的:
players = GameObject.FindGameObjectsWithTag("Player");
foreach (GameObject g in players)
{
ui_Controller.StartShowCharTraits();
g.GetComponent<PlayerToken>().isTurn = false;
}
StartShowCharTraits() 是一个简单的方法,它可以执行以下操作:
public void StartShowCharTraits()
{
StartCoroutine("ShowCharTraits");
}
现在,我已经检查了标签,没有空引用异常,实际上没有任何错误或警告被抛出。如果我在编辑器中加载场景,然后播放它,一切都正常。 traitPanel.SetActive(true);
被调用并且我的面板显示出来了。然而,当我使用 SceneManager.LoadScene(1);
从另一个场景加载我的场景时,上述代码行永远不会到达。有什么想法为什么会发生这种情况吗?