Top.Mail.Ru
Ответы
Аватар пользователя
8лет
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

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

Ребят, в 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"));
}
}
}

По дате
По рейтингу
Аватар пользователя
Новичок
8лет

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);

Аватар пользователя
Мудрец
8лет

Тебе нужно обработать событие, когда ты отпускаешь клавишу, и в нём остановить анимацию.