Corrotina Comportamento errado quando a cena é carregada
Ok, então eu tenho essa rotina:
IEnumerator ShowCharTraits()
{
while(!hasPlayerChosen)
{
yield return null;
traitPanel.SetActive(true);
}
hasPlayerChosen = false;
traitPanel.SetActive(false);
// Debug.Log("Got called! job done");
}
Está sendo chamado assim pelo método acordado no meuGameManager
:
players = GameObject.FindGameObjectsWithTag("Player");
foreach (GameObject g in players)
{
ui_Controller.StartShowCharTraits();
g.GetComponent<PlayerToken>().isTurn = false;
}
StartShowCharTraits () é um método simples que faz isso:
public void StartShowCharTraits()
{
StartCoroutine("ShowCharTraits");
}
Agora, verifiquei as tags, nenhuma exceção de referência nula, na verdade, nenhum erro ou aviso está sendo lançado. Se eu carregar a cena no editor e reproduzi-la, tudo funcionará bem.traitPanel.SetActive(true);
ser chamado e meu painel aparece. No entanto, quando carrego minha cena de outra cena usandoSceneManager.LoadScene(1);
a linha acima mencionada nunca é alcançada. Alguma idéia de por que isso está acontecendo?