UxrIKSolver Class

Base IK Solver class. IK solvers should inherit from it and override the InternalSolveIK() method. Not all solvers need to be part of an avatar, but the UxrAvatarComponent<T> inheritance is used to be able to enumerate all the solvers that are part of an avatar.

Inheritance Hierarchy

Namespace: UltimateXR.Animation.IK
Assembly: UltimateXR (in UltimateXR.dll) Version:



public abstract class UxrIKSolver : UxrAvatarComponent<UxrIKSolver>

The UxrIKSolver type exposes the following members.


Protected methodUxrIKSolver


Public propertyManualUpdate Gets if the IK solver will update itself. Otherwise the user will be responsible of calling SolveIK().
Public propertyNeedsAutoUpdate Gets if the solver needs to be updated automatically.
Public propertySolverEnabled Gets or sets the IK solver enabled state?


Protected methodInternalSolveIK To be implemented in child classes to execute the actual IK solving algorithm for the current frame
Protected methodOnDisable Unsubscribes from events (Overrides UxrComponent<T>.OnDisable().)
Protected methodOnEnable Subscribes to events (Overrides UxrComponent<T>.OnEnable().)
Public methodSolveIK Solves the IK. Calls InternalSolveIK(),which is implemented in child classes, but calls the appropriate Solving and Solved events.


Public eventSolved Called right after the IK was solved during the current frame
Public eventSolving Called right before the IK is about to be solved during the current frame

Extension Methods

Public Extension MethodCheckSetEnabled Enables/disabled the component if it isn’t enabled already. (Defined by MonoBehaviourExt.)
Public Extension MethodGetOrAddComponent<T> Gets the Component of a given type. If it doesn’t exist, it is added to the GameObject. (Defined by ComponentExt.)
Public Extension MethodGetPathUnderScene Gets the full path under current scene, including all parents, but scene name, for the given component. (Defined by ComponentExt.)
Public Extension MethodGetSceneUid Gets an unique identifier string for the given component. (Defined by ComponentExt.)
Public Extension MethodGetUniqueScenePath Gets an unique path in the scene for the given component. It will include scene name, sibling and component indices to make it unique. (Defined by ComponentExt.)
Public Extension MethodLoopCoroutine Creates a coroutine that simplifies executing a loop during a certain amount of time. (Defined by MonoBehaviourExt.)
Public Extension MethodSafeGetComponentInParent<T> Gets the Component of a given type in the GameObject or any of its parents. It also works on prefabs, where regular GetComponentInParent(Type, Boolean) will not work: https://issuetracker.unity3d.com/issues/getcomponentinparent-is-returning-null-when-the-gameobject-is-a-prefab (Defined by ComponentExt.)
Public Extension MethodShowInInspector(Boolean)Overloaded.
Controls whether to show the current object in the inspector. (Defined by ObjectExt.)
Public Extension MethodShowInInspector(Boolean, Boolean)Overloaded.
Controls whether to show the current object in the inspector and whether it is editable. (Defined by ObjectExt.)
Public Extension MethodThrowIfNull Throws an exception if the object is null. (Defined by ObjectExt.)

See Also


UltimateXR.Animation.IK Namespace