2016-02-09 4 views
3

У меня есть плеер, и я хочу переместить плеер слева направо. Я могу переместить плеер с помощью событий клавиатуры. Но проблема в том, что когда я выпускаю ключ, анимация игрока должна быть бездействующей. Это не работает. Зачем?Idle animation не запускается при нажатии клавиши

void Update() 
{ 
    if (Input.GetKeyDown(KeyCode.RightArrow)) 
    { 
     transform.Translate(Vector3.forward*Time.deltaTime); 
     animation.Play("Walk_with_Bin_001"); 
     animation["Walk_with_Bin_001"].wrapMode = WrapMode.Loop; 
    } 

    if (Input.GetKeyUp(KeyCode.UpArrow)) 
    { 
     animation.Stop("Walk_with_Bin_001"); 
     animation.Play("Idle"); 
    } 
} 
+0

Вы используете анимацию или аниматор? Остановляет ли он анимацию Bin? – Everts

ответ

1

Я подозреваю, что вы можете перепутать свои коды ключей для условий вашего заявления. В первом блоке вы проверяете наличие ключа KeyCode.RightArrow, но в вашем втором блоке вы проверяете наличие ключа KeyCode.UpArrow.

Это означает, что даже если вы отпустите клавишу со стрелкой вправо, «Walk_with_Bin_001» продолжит воспроизведение в цикле, пока вы не нажмете клавишу со стрелкой вверх. Изменение второе условие также использовать KeyCode.RightArrow, и ваш код должен делать то, что вы ожидаете его, вот так:

if (Input.GetKeyUp(KeyCode.RightArrow)) 
{ 
    animation.Stop("Walk_with_Bin_001"); 
    animation.Play("Idle"); 
} 
Смежные вопросы