Неправильное поведение сопрограммы при загрузке сцены
Итак, у меня есть эта сопрограмма:
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);
вышеупомянутая линия никогда не достигается. Есть идеи, почему это происходит ?