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?

questionAnswers(2)

yourAnswerToTheQuestion