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

NameDescription
Public methodUxrCcdIKSolver

Properties

NameDescription
Public propertyEndEffector Gets the end effector, which is the point that is part of the chain that will try to match the goal position.
Public propertyGoal Gets the goal, which is the goal that the chain will try to match with the EndEffector.
Public propertyLinks Gets the list of links in the CCD.

Methods

NameDescription
Protected methodAwake Initializes the link data. (Overrides UxrAvatarComponent<T>.Awake().)
Public methodComputeLinkData 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.
Protected methodInternalSolveIK IK solver implementation. Will try to make the end effector in the link chain to match the goal. (Overrides UxrIKSolver.InternalSolveIK().)
Public methodSetLinkDefaultValues Sets the default values for the given link.
Public methodSetLinkWeight Sets the weight of the given link.
Protected methodStart Checks if the goal needs to be parented so that the IK computation doesn’t affect the goal itself. (Overrides UxrComponent.Start().)

Extension Methods

NameDescription
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

Reference

UltimateXR.Animation.IK Namespace