Hi everyone. I’m using Unity 4.3.1 and in the animation state machine window, I can add 4 types of parameters: int, float, Bool and Trigger. What is the difference between Bool and Trigger?
They seem to be the same (both have checkbox interface). There’s nothing about the “Trigger” parameter type in Unity Docs. Instead, there’s a vector type that’s no longer in Unity. Unity - Manual: Animation Parameters
Trigger is new added in 4.3. My understanding is that it is a “one-shot” Boolean, which can be triggered (i.e. set to “true”) for a single frame only, after which it automatically reverts back to false.
Prior to this, it was somewhat difficult to implement state transitions that you wanted to take immediate effect but then return (i.e. such as firing a gun), because you had to wait for the transition to begin before resetting the Bool with logic such as:
// Set the Bool to transition to the firing state
animator.SetBool("Firing", true);
// Once transition has begun, reset the bool
if (animator.GetNextAnimatorStateInfo(0).IsName("Firing")) {
animator.SetBool("Firing", false);
}
Let’s say you have an animation that plays when a bool is set to true. After the animation is complete the bool should be set to false again in order to transit to another state.
This used to be achieved by code, but now you can use a Trigger instead. It’s a bool that will be set to false automatically after the completion of animation.