2015-05-29 3 views
0

Я новичок в Unity/кодировании и пытаюсь создать простую двухэтапную анимацию, в которой я могу настроить время задержки для каждого шага. У меня есть лифт в моей игре, который использует две анимации: «Вверх» и «Вниз».Простая двухэтапная анимация с использованием инструмента анимации Unity

Я использую нумератор играть анимации, и это то, что я до сих пор:

IEnumerator Go() 
{ 
    while(true) 
    { 
     GetComponent<Animation>().Play ("Up"); 
     yield return new WaitForSeconds(delayTime); 
     break; 
     GetComponent<Animation>().Play ("Down"); 
     yield return new WaitForSeconds(delayTime); 
     break; 
    } 
} 

Я понимаю, что я мог бы просто оживить все это как одно движение, но я хочу, чтобы иметь возможность для регулировки времени задержки на лету. Моя цель - оживить эти два подряд. Вверх, затем вниз. В настоящий момент мой лифт поднимается и остается там. Что я делаю не так?

Спасибо за помощь!

ответ

0

Удалить Распад положения:

IEnumerator Go() 
{ 
    while(true) 
    { 
     GetComponent<Animation>().Play ("Up"); 
     yield return new WaitForSeconds(delayTime); 
     GetComponent<Animation>().Play ("Down"); 
     yield return new WaitForSeconds(delayTime); 
    } 
} 

Теперь он должен цикл две анимации. В исходном коде break statements вызывают выключение из цикла, и поэтому Play для «Вниз» никогда не вызывается и выполнение функции прекращается.

Если вы хотите, чтобы лифт поднимался и опускался только после того, как вам нужно удалить цикл while.