Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

C# Выполнять действие, если зажата клавиша

Олег Гарепов Ученик (129), закрыт 6 лет назад
Ребят, в unity делаю анимацию персонажу, через скрипт задаю, на какую клавишу, какая анимация воспроизводится. Такая проблема, как сделать так, чтобы пока зажата клавиша W воспроизводилась анимация Run,а как только я эту клавишу отжимаю, он встаёт на месте с анимацией. Вот скрипт :using UnityEngine;
using System.Collections;

public class NewBehaviourScript : MonoBehaviour {
Animator anim;

void Start () {
anim = GetComponent ();
}

void Update () {
if(Input.GetKeyDown(KeyCode.W)) {
anim.SetBool("Run",!anim.GetBool("Run"));
}
}
}
Лучший ответ
Олег Олегович Просветленный (22868) 6 лет назад
void Update()
{
if (Input.GetKeyDown(KeyCode.W))
anim.SetBool("Run", true);
else
anim.SetBool("Run", false);
}

А вообще robinzone прав. Правильнее будет обрабатывать события клавиши
if (Input.GetButtonDown("Horizontal")) anim.SetBool("Run", true);
if (Input.GetButtonUp("Horizontal")) anim.SetBool("Run", false);
Остальные ответы
polyarnost a Мудрец (14251) 6 лет назад
Тебе нужно обработать событие, когда ты отпускаешь клавишу, и в нём остановить анимацию.
Олег ГареповУченик (129) 6 лет назад
Это как?
polyarnost a Мудрец (14251) Уверен, что в юнити, помимо GetKeyDown. есть что-то вроде GetKeyUp
Похожие вопросы