UxrCcdIKSolver Class
Component that we use to solve IK chains using CCD (Cyclic Coordinate Descent). A chain is defined by a set of links, an effector and a goal. The links are bones that will try to make the effector reach the same exact point, or the closest to, the goal. Usually the effector is on the tip of the last bone. Each link can have different rotation constraints to simulate different behaviours and systems.
Inheritance Hierarchy
System.Object
Object
Component
Behaviour
MonoBehaviour
UltimateXR.Core.Components.UxrComponent
UltimateXR.Core.Components.UxrComponent(UxrIKSolver)
UltimateXR.Core.Components.Composite.UxrAvatarComponent(UxrIKSolver)
UltimateXR.Animation.IK.UxrIKSolver
UltimateXR.Animation.IK.UxrCcdIKSolver
Namespace: UltimateXR.Animation.IK
Assembly: UltimateXR (in UltimateXR.dll) Version: 0.0.0.0
Syntax
C#
public class UxrCcdIKSolver : UxrIKSolver
The UxrCcdIKSolver type exposes the following members.
Constructors
Name | Description | |
---|---|---|
UxrCcdIKSolver |
Properties
Name | Description | |
---|---|---|
EndEffector | Gets the end effector, which is the point that is part of the chain that will try to match the goal position. | |
Goal | Gets the goal, which is the goal that the chain will try to match with the EndEffector. | |
Links | Gets the list of links in the CCD. |
Methods
Name | Description | |
---|---|---|
Awake | Initializes the link data. (Overrides UxrAvatarComponent<T>.Awake().) | |
ComputeLinkData | Initializes the internal data for the IK chain. This will only need to be called once during Awake(), but inside the Unity editor we can call it also for drawing some gizmos that need it. | |
InternalSolveIK | IK solver implementation. Will try to make the end effector in the link chain to match the goal. (Overrides UxrIKSolver.InternalSolveIK().) | |
SetLinkDefaultValues | Sets the default values for the given link. | |
SetLinkWeight | Sets the weight of the given link. | |
Start | Checks if the goal needs to be parented so that the IK computation doesn’t affect the goal itself. (Overrides UxrComponent.Start().) |
Extension Methods
Name | Description | |
---|---|---|
CheckSetEnabled | Enables/disabled the component if it isn’t enabled already. (Defined by MonoBehaviourExt.) | |
GetOrAddComponent<T> | Gets the Component of a given type. If it doesn’t exist, it is added to the GameObject. (Defined by ComponentExt.) | |
GetPathUnderScene | Gets the full path under current scene, including all parents, but scene name, for the given component. (Defined by ComponentExt.) | |
GetSceneUid | Gets an unique identifier string for the given component. (Defined by ComponentExt.) | |
GetUniqueScenePath | 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.) | |
LoopCoroutine | Creates a coroutine that simplifies executing a loop during a certain amount of time. (Defined by MonoBehaviourExt.) | |
SafeGetComponentInParent<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.) | |
ShowInInspector(Boolean) | Overloaded. Controls whether to show the current object in the inspector. (Defined by ObjectExt.) | |
ShowInInspector(Boolean, Boolean) | Overloaded. Controls whether to show the current object in the inspector and whether it is editable. (Defined by ObjectExt.) | |
ThrowIfNull | Throws an exception if the object is null. (Defined by ObjectExt.) |