- Home /
Animator State does not switch immediately through code, even tho all transitions have "Has Exit Time" checked off
first of all this is my code, I'm prototyping a state machine using Unity Animator (First Time) and I'm stuck coding a simple burst of speed.
using UnityEngine;
using UnityEngine.AI;
[CreateAssetMenu(fileName = "Dash", menuName = "States/Dash")]
class Dash : State
{
NavMeshAgent agent;
[SerializeField] float Speed = 50;
[SerializeField] float Distance = 1;
float oldSpeed,counter, duration;
public override void onStart(Animator animator, AnimatorStateInfo stateInfo)
{
agent = animator.GetComponent<NavMeshAgent>();
duration = Distance / Speed;
oldSpeed = agent.speed;
agent.speed = Speed;
counter = 0;
}
public override void onUpdate(Animator animator, AnimatorStateInfo stateInfo)
{
counter += Time.deltaTime;
Debug.Log(counter + " of " + duration);
if(counter > duration)
{
Debug.LogError("Dash is finished");
agent.speed = oldSpeed;
animator.SetBool("isDashing", false);
}
}
public override void onExit(Animator animator, AnimatorStateInfo stateInfo)
{
}
}
The issue is that the player standstill for few second after dashing. So I've added some debug.log and this is the result.
As you can see, the state keeps updating even tho the timer has ran up. It even keeps updating after switching to "Idle" state, tho this ends at some point. I've made sure that all transitions have "Has Exit Time" checked off and the Interruption Source = "Current State". note this is just a prototype and the states have no animations still.
Answer by Jasr_88 · May 24, 2020 at 09:58 AM
Have you tried to set the transition duration to 0?
I had the same exact problem as op and checked the transition duration as per your suggestion. It was set to 0.25 seconds and changing it to zero fixed my issue.
Why on earth would the transition duration be anything BUT zero by default?
Your answer
Follow this Question
Related Questions
Transform rotation animation no longer works with version 5 0 Answers
Animate only after certain time 1 Answer
Firing triggers and playing animations in sequence 0 Answers
Transform rotation animation no longer works with version 5 0 Answers
Can an empty state in Animator cause performance issues? 1 Answer