Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Drive Unity 6 character animation with Animator Controllers: states, transitions, parameters, blend trees, animation layers, and humanoid Avatar IK. Use when wiring an Animator, setting parameters from script (SetFloat/SetBool/SetTrigger), building blend trees, or when the user mentions Animator, Mecanim, state machine, blend tree, or .controller.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-11 | ✗→✓ | ▲ Improved | 333% | 0% |
| case-20 | ✓→✓ | = Same ✓ | 46% | 0% |
| case-01 | ✓→✓ | = Same ✓ | 43% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 31% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 85% | 0% |
Control animation state with Unity 6's Animator and Animator Controllers: parameters, transitions, blend trees, layers, and humanoid IK. Targets Unity 6 (6000.0 LTS).
parameters, blending locomotion (idle→walk→run), layering an upper-body action over movement, or adding foot/hand IK on a humanoid rig.
*.controller (Animator Controller) and *.anim assets, or arigged model with an Avatar.
When not to use: simple non-skeletal value tweens (UI fades, position lerps) are better done with a tween/coroutine — see unity-csharp-scripting. Timeline cutscenes are a separate tool. 2D sprite frame animation also uses the Animator but with sprite keyframes.
Animator to the model and assign an Animator Controller; for a humanoid model,set its rig to Humanoid so it has an Avatar (enables retargeting and IK).
Float (Speed), Bool (IsGrounded), Int,Trigger (Jump) — and states with transitions whose conditions read those parameters.
SetFloat, SetBool,SetInteger, SetTrigger. The state machine resolves transitions for you.
Float like Speed drives idle↔walk↔run)instead of many discrete states + transitions.
control its layerWeight.
values update, so you can see exactly which transition fired (or didn't).
csharpusing UnityEngine; [RequireComponent(typeof(Animator))] public class CharacterAnim : MonoBehaviour { private Animator _anim; // Cache parameter hashes — faster and typo-proof vs string lookups every frame. private static readonly int Speed = Animator.StringToHash("Speed"); private static readonly int IsGrounded= Animator.StringToHash("IsGrounded"); private static readonly int Jump = Animator.StringToHash("Jump"); private void Awake() => _anim = GetComponent<Animator>(); public void Tick(float planarSpeed, bool grounded) { _anim.SetFloat(Speed, planarSpeed); // drives a 1D blend tree (idle/walk/run) _anim.SetBool(IsGrounded, grounded); // gates a falling/landing transition } public void DoJump() => _anim.SetTrigger(Jump); // fire-and-forget; auto-resets after use }
csharp// dampTime smooths Speed so the blend tree doesn't snap; great for analog sticks. _anim.SetFloat(Speed, targetSpeed, 0.1f /* dampTime */, Time.deltaTime);
csharp// Useful for hit reactions where you want an immediate, explicit transition. _anim.CrossFade("Hit", 0.1f); // blend over 0.1s normalized // Or jump instantly: _anim.Play("Hit");
csharpprivate System.Collections.IEnumerator AfterAttack() { var info = _anim.GetCurrentAnimatorStateInfo(0); // layer 0 yield return new WaitForSeconds(info.length); // approximate clip length // ...follow-up logic }
SetTrigger missed or "sticks" — triggers are consumed by the next satisfied transitionand auto-reset; if no transition consumes it, it can fire later unexpectedly. Use ResetTrigger to clear, or prefer a Bool when the condition is a sustained state.
Animator.StringToHash and cache the int hashes.
Has Exit Time makes the transition wait for the clip to reacha normalized time. Uncheck it for responsive, condition-driven transitions (jump, hit).
Apply Root Motion is on but your code also moves thetransform (or vice versa). Decide: root motion or scripted movement, not both.
Additive), assign an Avatar Mask, and tune layerWeight (0–1).
OnAnimatorIK, requires "IK Pass" enabled onthe layer, and needs a Humanoid Avatar.
and humanoid IK (OnAnimatorIK, SetIKPositionWeight, SetIKPosition, look-at), read references/blend-trees-and-ik.md.
ScriptReference/Animator.unity-csharp-scripting — the MonoBehaviour and coroutine timing used above.unity-physics — moving the body that the animation visualises.game-ai — deciding when to play which animation state.Other measured skills in the registry, with their headline benchmark lift.