class in UnityEngine.Animations
/
Inherits from:Behaviour
/
Implemented in:UnityEngine.AnimationModule
Implements interfaces:IKBase, MultiGoalIKBase
Full Body IK solver.
This class implements a Full Body IK solver, allowing for more flexible and accurate manipulation of bones in a skeletal system.
It is designed to work with a set of goals and can dynamically adjust bone positions and rotations based on the specified targets.
See Also: IKBase,MultiGoalIKBase.
| boundBones | Gets the set of bound bones used for IK goals. |
| constraints | Gets or sets the collection of rotation/translation constraints applied to bones during IK calculations. These constraints restrict bone movements to anatomically plausible ranges (e.g., joint limits) to prevent unnatural poses. |
| damping | Gets or sets the damping factor (0-1 range) applied to bone adjustments. Higher values reduce the "aggressiveness" of solver updates, smoothing out rapid bone movements and preventing overshooting goals; lower values make adjustments faster but may cause instability. |
| freezeRoot | Gets or sets a value indicating whether to lock the root bone's position and rotation during IK calculations. When enabled, the root bone remains fixed, and the solver only adjusts child bones to reach goals; when disabled, the root may move to assist with goal alignment. |
| goals | Gets the IK goals associated with this solver. |
| initialized | Indicates whether the IK solver has been initialized. |
| iterations | Gets or sets the maximum number of iterations the solver runs per IK update. More iterations improve goal alignment accuracy but increase computational cost; fewer iterations are faster but may result in incomplete goal reach. |
| prePullRoot | Gets or sets a value indicating whether to enable "pre-pull" adjustment of the root bone. When enabled, the solver first shifts the root bone closer to distant goals before calculating individual bone rotations, improving reach for far targets while maintaining natural skeletal structure. |
| rootBone | Gets the root bone of the IK chain. |
| rotationStrength | Gets or sets the global strength multiplier (≥0) for rotation adjustments. A value of 1.0 uses default strength; values greater than 1.0 increase rotation influence (bones rotate more to match goal orientation); values less than 1.0 decrease influence (bones rotate less). |
| rotationTolerance | Gets or sets the angular threshold (in degrees) for rotation convergence. If the average rotation difference between bound bones and their goals falls below this value, the solver stops iterating early, balancing orientation accuracy and performance. |
| stretchRatio | Gets or sets the maximum allowed stretch ratio (≥1.0) of the skeletal chain. A value of 1.0 disables stretching (bones maintain fixed length); values greater than 1.0 allow controlled stretching (e.g., 1.05 permits 5% stretch) to reach distant goals, with higher values enabling more stretch. |
| translationStrength | Gets or sets the global strength multiplier (≥0) for translation adjustments. A value of 1.0 uses default strength; values greater than 1.0 increase translation influence (bones move more to reach goals); values less than 1.0 decrease influence (bones move less). |
| translationTolerance | Gets or sets the distance threshold (in world units) for translation convergence. If the average distance between bound bones and their goals falls below this value, the solver stops iterating early, balancing accuracy and performance. |
| type | Gets or sets the algorithm type of the Full Body IK solver (e.g., pseudo-inverse damped least squares, PBD-based). Determines the core method the solver uses to calculate bone adjustments. |
| AddTargetPair | Add new target pair. |
| ClearAllTargets | Removes all target pairs (goal + bound bone) from the solver. Resets the solver's target list to an empty state. |
| ClearInvalidTargets | Clears invalid targets whose bound bone is null or goal is null. |
| FixTransforms | Resets bone transforms before applying IK calculations. |
| GetRotationEnabled | Retrieves the rotation enable state for the target pair associated with the specified goal. |
| GetRotationWeight | Retrieves the rotation influence weight for the target pair associated with the specified goal. Controls how strongly the solver adjusts the bound bone's orientation to match the goal. |
| GetTranslatioEnabled | Retrieves the translation enable state for the target pair associated with the specified goal. |
| GetTranslationWeight | Retrieves the translation influence weight for the target pair associated with the specified goal. Controls how strongly the solver adjusts the bound bone's position to match the goal. |
| Initialize | Initialize IK solver. |
| IsValid | Checks whether the solver has been set up properly. |
| RemoveTarget | Removes the target pair associated with the specified goal from the solver. If no pair matches the goal, the method has no effect. |
| SetRotationEnabled | Sets whether rotation adjustments are enabled for the target pair associated with the specified goal. Has no effect if the goal is not found in the solver. |
| SetRotationWeight | Sets the rotation influence weight for the target pair associated with the specified goal. Higher values increase the solver's focus on aligning the bound bone's orientation with the goal. Has no effect if the goal is not found in the solver. |
| SetTranslationEnabled | Sets whether translation adjustments are enabled for the target pair associated with the specified goal. Has no effect if the goal is not found in the solver. |
| SetTranslationWeight | Sets the translation influence weight for the target pair associated with the specified goal. Higher values increase the solver's focus on aligning the bound bone's position with the goal. Has no effect if the goal is not found in the solver. |
| enabled | Enabled Behaviours are Updated, disabled Behaviours are not. |
| isActiveAndEnabled | Reports whether a GameObject and its associated Behaviour is active and enabled. |
| gameObject | The game object this component is attached to. A component is always attached to a game object. |
| tag | The tag of this game object. |
| transform | The Transform attached to this GameObject. |
| hideFlags | Should the object be hidden, saved with the Scene or modifiable by the user? |
| name | The name of the object. |
| BroadcastMessage | Calls the method named methodName on every MonoBehaviour in this game object or any of its children. |
| CompareTag | Checks the GameObject's tag against the defined tag. |
| GetComponent | Gets a reference to a component of type T on the same GameObject as the component specified. |
| GetComponentInChildren | Gets a reference to a component of type T on the same GameObject as the component specified, or any child of the GameObject. |
| GetComponentIndex | Gets the index of the component on its parent GameObject. |
| GetComponentInParent | Gets a reference to a component of type T on the same GameObject as the component specified, or any parent of the GameObject. |
| GetComponents | Gets references to all components of type T on the same GameObject as the component specified. |
| GetComponentsInChildren | Gets references to all components of type T on the same GameObject as the component specified, and any child of the GameObject. |
| GetComponentsInParent | Gets references to all components of type T on the same GameObject as the component specified, and any parent of the GameObject. |
| SendMessage | Calls the method named methodName on every MonoBehaviour in this game object. |
| SendMessageUpwards | Calls the method named methodName on every MonoBehaviour in this game object and on every ancestor of the behaviour. |
| TryGetComponent | Gets the component of the specified type, if it exists. |
| GetInstanceID | Gets the instance ID of the object. |
| ToString | Returns the name of the object. |
| Destroy | Removes a GameObject, component or asset. |
| DestroyImmediate | Destroys the object obj immediately. You are strongly recommended to use Destroy instead. |
| DontDestroyOnLoad | Do not destroy the target Object when loading a new Scene. |
| FindAnyObjectByType | Retrieves any active loaded object of Type type. |
| FindFirstObjectByType | Retrieves the first active loaded object of Type type. |
| FindObjectOfType | Returns the first active loaded object of Type type. |
| FindObjectsByType | Retrieves a list of all loaded objects of Type type. |
| FindObjectsOfType | Gets a list of all loaded objects of Type type. |
| Instantiate | Clones the object original and returns the clone. |
| InstantiateAsync | Captures a snapshot of the original object (that must be related to some GameObject) and returns the AsyncInstantiateOperation. |
| bool | Does the object exist? |
| operator != | Compares if two objects refer to a different object. |
| operator == | Compares two object references to see if they refer to the same object. |