Я создал Animator Controller
(называемый Player
) и присвоил его полюсу моего гуманоидного аватара Animator
, а также простыми состояниями анимации с подходящими переходами. См. Два прикрепленных изображения.Unity 5.1 Animator Controller не переходит
Я приложил сценарий, содержащий следующий код, к моему игровому объекту аватара, но мне интересно, чего я не вижу или делаю неправильно, что переход от Idle
к Walk
не состоится, хотя я вижу, что speed
переменная увеличивается при нажатии W
.
Может ли кто-нибудь помочь мне разобраться в проблеме?
using UnityEngine;
using System.Collections;
public class CharAnim : MonoBehaviour
{
private Animator animator;
float speed;
void Start()
{
animator = GetComponent<Animator>();
}
void Update()
{
animator.SetFloat("speed", Input.GetAxis("Vertical"));
if (Input.GetKeyDown(KeyCode.W) && (speed > 0.5f))
{
animator.SetTrigger("Walk");
}
else
{
animator.SetTrigger("Idle");
}
}
}
х
Благодаря Nimesh. Я внес изменения, которые вы предложили, но состояние 'Idle' остается постоянным. Скорость увеличивается до «1», хотя переход не выполняется. Можете ли вы воспроизвести эту ситуацию? – Joshua
Да, я пробовал то же самое здесь, и он работает. Вы уверены, что правильно настроили аниматор? Состояние бездействия ----------- Прогулка ------------> Состояние ходьбы Состояние ходьбы ---------- Холостой ход ------ -------> Idle State Не используйте переменную скорости, если вы используете логическое значение для установки триггера. – Nimesh
Кроме того, удалите AnyState & Entry из вашего Animator, если вы их не используете. Я лично предпочитаю настраивать каждое состояние и их переходы вручную. – Nimesh