# OnStateIK

> Invoked during the Animator IK pass. Implement this message to modify the result of the animation after the evaluation of the state machine on a state by state basis.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.0/script-reference/unityengine.md)
* **Assembly:** UnityEngine.AnimationModule

## OnStateIK(Animator, AnimatorStateInfo, int)

Invoked during the Animator IK pass. Implement this message to modify the result of the animation after the evaluation of the state machine on a state by state basis.

```csharp
public virtual void OnStateIK(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
```

### Parameters

**** (\[Animator]\(/engine/6000.0/script-reference/unityengine/animator)): The Animator evaluating this state machine.**** (\[AnimatorStateInfo]\(/engine/6000.0/script-reference/unityengine/animatorstateinfo)): **** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The current layer being evaluated.

### Remarks

OnStateIK is invoked every frame for the currently evaluated state, as well the next state and the interrupted state if applicable. It will be invoked after [MonoBehaviour.OnAnimatorIK(int)](/engine/6000.0/script-reference/unityengine/monobehaviour/onanimatorik.md).

**Note**: OnStateIK may be invoked multiple times on the same state if that state is synchronized on multiple layers.

## OnStateIK(Animator, AnimatorStateInfo, int, AnimatorControllerPlayable)

Invoked during the Animator IK pass. Implement this message to modify the result of the animation after the evaluation of the state machine on a state by state basis.

```csharp
public virtual void OnStateIK(Animator animator, AnimatorStateInfo stateInfo, int layerIndex, AnimatorControllerPlayable controller)
```

### Parameters

**** (\[Animator]\(/engine/6000.0/script-reference/unityengine/animator)): The Animator evaluating this state machine.**** (\[AnimatorStateInfo]\(/engine/6000.0/script-reference/unityengine/animatorstateinfo)): **** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The current layer being evaluated.**** (\[AnimatorControllerPlayable]\(/engine/6000.0/script-reference/unityengine/animations/animatorcontrollerplayable)):&#x20;

### Remarks

OnStateIK is invoked every frame for the currently evaluated state, as well the next state and the interrupted state if applicable. It will be invoked after [MonoBehaviour.OnAnimatorIK(int)](/engine/6000.0/script-reference/unityengine/monobehaviour/onanimatorik.md).

**Note**: OnStateIK may be invoked multiple times on the same state if that state is synchronized on multiple layers.
