Не работает анимация через Animator в Unity
Я делаю анимацию и у меня не работает не через Animation, ни через Animator, что я делаю не так?
C начало была проблема что переменная вечно было как false, я попробовал исправить это, теперь предмет вообще пропадает.
Подробнее в скриншотах >> [
1, 
using UnityEngine;
public class SpearAttack : MonoBehaviour
{
[Header("Анимация играет")]
[SerializeField] private bool attackPlaying;
[Header("Анимации")]
[SerializeField] private string attack;
private Animator _animator;
private void Start()
{
_animator = GetComponent<Animator>();
}
private void Update()
{
AttackAnimation();
}
private void AttackAnimation()
{
if (Input.GetMouseButtonDown(0))
{
attackPlaying = true;
if (attackPlaying)
{
_animator.SetBool(attack, true);
attackPlaying = false;
}
else
{
_animator.SetBool(attack, false);
}
}
}
}
Ответы (1 шт):
Автор решения: For Tankista
→ Ссылка
Готовый код решения! Если говоря коротко то, если кнопка нажата то мы будем производить анимацию в фиксираваном количестве раз!
Использовал FixedUpdate, потому что так не будет багов с анимацией, FixedUpdate обновляет 50 раз в секунду и не обращает внимания на FPS, так будет меньше багов с проверкой и т.д.
using UnityEngine;
public class SpearAttack : MonoBehaviour
{
[Header("Анимации")]
[SerializeField] private string attack;
private Animator _animator;
private void Start()
{
_animator = GetComponent<Animator>();
}
private void FixedUpdate()
{
AttackAnimation();
}
private void AttackAnimation()
{
if (Input.GetMouseButtonDown(0))
{
_animator.PlayInFixedTime("SpearAttack");
Debug.Log("Анимация работает :D!");
}
else
{
Debug.Log("Жду нажатия кнопки!");
}
}
}