У меня есть функция сделать простую анимацию меню в NGUI.
Кажется, он отлично работает, но когда я иду играть, а затем возвращаюсь в меню, функция работает неправильно.
IEnumerator MenuTransition (GameObject panelOut, GameObject panelIn) {
foreach (Transform child in panelOut.transform)
{
if(child.gameObject.collider != null)
{
child.gameObject.collider.enabled = false;
UIButton [] buttons = child.GetComponents();
foreach(UIButton b in buttons) b.UpdateColor(true, true);
}
child.gameObject.animation.Play("MenuTransitionOff");
}
Debug.Log("time: "+animTime);
//yield return new WaitForSeconds(animTime);
Debug.Log("ini");
foreach (Transform child in panelIn.transform)
{
UIButton [] buttons = child.GetComponents();
foreach(UIButton b in buttons) b.UpdateColor(true, true);
child.gameObject.animation.Play("MenuTransitionOn");
}
//yield return new WaitForSeconds(animTime);
foreach (Transform child in panelIn.transform)
{
if(child.gameObject.collider != null)
{
child.gameObject.collider.enabled = true;
}
}
Debug.Log("3");
yield return null;
Debug.Log("4");
}
И эта функция quets clled из другой, которая назначена кнопке onclick event (используя NGUI).
void OnMainMatch() {
StartCoroutine(MenuTransition(mainPanel, matchPanel));
}
Когда доходность раскоментирована, приложение, похоже, разбивается на первый, и после него больше не появляются журналы, но даже если я прокомментирую два выхода и добавлю их в конец, я не получаю анимацию, и кнопки становятся нерешительными. В этом последнем случае 4 печатается. Это происходит только после запуска игры и возврата в меню, а не при первом запуске меню.
Я также отлаживал время анимации, и это меньше секунды, так что это правильно.
Я действительно не знаю, где искать ошибку. Любая идея о том, где искать?