Version: 2022.3
LanguageEnglish
  • C#

ConfigurableJoint

class in UnityEngine

/

Inherits from:Joint

/

Implemented in:UnityEngine.PhysicsModule

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Switch to Manual

Description

The configurable joint is an extremely flexible joint giving you complete control over rotation and linear motion.

You can build all other joints with it and much more but it is also more complicated to setup. It gives you control over motors, drives and joint limits for each rotation axis and and linear degree of freedom.

Properties

angularXDriveDefinition of how the joint's rotation will behave around its local X axis. Only used if Rotation Drive Mode is Swing & Twist.
angularXLimitSpringThe configuration of the spring attached to the angular X limit of the joint.
angularXMotionAllow rotation around the X axis to be Free, completely Locked, or Limited according to Low and High Angular XLimit.
angularYLimitBoundary defining rotation restriction, based on delta from original rotation.
angularYMotionAllow rotation around the Y axis to be Free, completely Locked, or Limited according to Angular YLimit.
angularYZDriveDefinition of how the joint's rotation will behave around its local Y and Z axes. Only used if Rotation Drive Mode is Swing & Twist.
angularYZLimitSpringThe configuration of the spring attached to the angular Y and angular Z limits of the joint.
angularZLimitBoundary defining rotation restriction, based on delta from original rotation.
angularZMotionAllow rotation around the Z axis to be Free, completely Locked, or Limited according to Angular ZLimit.
configuredInWorldSpaceIf enabled, all Target values will be calculated in world space instead of the object's local space.
highAngularXLimitBoundary defining upper rotation restriction, based on delta from original rotation.
linearLimitBoundary defining movement restriction, based on distance from the joint's origin.
linearLimitSpringThe configuration of the spring attached to the linear limit of the joint.
lowAngularXLimitBoundary defining lower rotation restriction, based on delta from original rotation.
projectionAngleSet the angular tolerance threshold (in degrees) for projection.If the joint deviates by more than this angle around its locked angular degrees of freedom, the solver will move the bodies to close the angle.Setting a very small tolerance may result in simulation jitter or other artifacts.Sometimes it is not possible to project (for example when the joints form a cycle).
projectionDistanceSet the linear tolerance threshold for projection.If the joint separates by more than this distance along its locked degrees of freedom, the solver will move the bodies to close the distance.Setting a very small tolerance may result in simulation jitter or other artifacts.Sometimes it is not possible to project (for example when the joints form a cycle).
projectionModeBrings violated constraints back into alignment even when the solver fails. Projection is not a physical process and does not preserve momentum or respect collision geometry. It is best avoided if practical, but can be useful in improving simulation quality where joint separation results in unacceptable artifacts.
rotationDriveModeControl the object's rotation with either X & YZ or Slerp Drive by itself.
secondaryAxisThe joint's secondary axis.
slerpDriveDefinition of how the joint's rotation will behave around all local axes. Only used if Rotation Drive Mode is Slerp Only.
swapBodiesEnable this property to swap the order in which the physics engine processes the Rigidbodies involved in the joint. This results in different joint motion but has no impact on Rigidbodies and anchors.
targetAngularVelocityThis is a Vector3. It defines the desired angular velocity that the joint should rotate into.
targetPositionThe desired position that the joint should move into.
targetRotationThis is a Quaternion. It defines the desired rotation that the joint should rotate into.
targetVelocityThe desired velocity that the joint should move along.
xDriveDefinition of how the joint's movement will behave along its local X axis.
xMotionAllow movement along the X axis to be Free, completely Locked, or Limited according to Linear Limit.
yDriveDefinition of how the joint's movement will behave along its local Y axis.
yMotionAllow movement along the Y axis to be Free, completely Locked, or Limited according to Linear Limit.
zDriveDefinition of how the joint's movement will behave along its local Z axis.
zMotionAllow movement along the Z axis to be Free, completely Locked, or Limited according to Linear Limit.

Inherited Members

Properties

gameObjectThe game object this component is attached to. A component is always attached to a game object.
tagThe tag of this game object.
transformThe Transform attached to this GameObject.
anchorThe Position of the anchor around which the joints motion is constrained.
autoConfigureConnectedAnchorShould the connectedAnchor be calculated automatically?
axisThe Direction of the axis around which the body is constrained.
breakForceThe force that needs to be applied for this joint to break.
breakTorqueThe torque that needs to be applied for this joint to break. To be able to break, a joint must be _Locked_ or _Limited_ on the axis of rotation where the torque is being applied. This means that some joints cannot break, such as an unconstrained Configurable Joint.
connectedAnchorPosition of the anchor relative to the connected Rigidbody.
connectedArticulationBodyA reference to an articulation body this joint connects to.
connectedBodyA reference to another rigidbody this joint connects to.
connectedMassScaleThe scale to apply to the inverse mass and inertia tensor of the connected body prior to solving the constraints.
currentForceThe force applied by the solver to satisfy all constraints.
currentTorqueThe torque applied by the solver to satisfy all constraints.
enableCollisionEnable collision between bodies connected with the joint.
enablePreprocessingToggle preprocessing for this joint.
massScaleThe scale to apply to the inverse mass and inertia tensor of the body prior to solving the constraints.
hideFlagsShould the object be hidden, saved with the Scene or modifiable by the user?
nameThe name of the object.

Public Methods

BroadcastMessageCalls the method named methodName on every MonoBehaviour in this game object or any of its children.
CompareTagChecks the GameObject's tag against the defined tag.
GetComponentGets a reference to a component of type T on the same GameObject as the component specified.
GetComponentInChildrenGets a reference to a component of type T on the same GameObject as the component specified, or any child of the GameObject.
GetComponentIndexGets the index of the component on its parent GameObject.
GetComponentInParentGets a reference to a component of type T on the same GameObject as the component specified, or any parent of the GameObject.
GetComponentsGets references to all components of type T on the same GameObject as the component specified.
GetComponentsInChildrenGets references to all components of type T on the same GameObject as the component specified, and any child of the GameObject.
GetComponentsInParentGets references to all components of type T on the same GameObject as the component specified, and any parent of the GameObject.
SendMessageCalls the method named methodName on every MonoBehaviour in this game object.
SendMessageUpwardsCalls the method named methodName on every MonoBehaviour in this game object and on every ancestor of the behaviour.
TryGetComponentGets the component of the specified type, if it exists.
GetInstanceIDGets the instance ID of the object.
ToStringReturns the name of the object.

Static Methods

DestroyRemoves a GameObject, component or asset.
DestroyImmediateDestroys the object obj immediately. You are strongly recommended to use Destroy instead.
DontDestroyOnLoadDo not destroy the target Object when loading a new Scene.
FindAnyObjectByTypeRetrieves any active loaded object of Type type.
FindFirstObjectByTypeRetrieves the first active loaded object of Type type.
FindObjectOfTypeReturns the first active loaded object of Type type.
FindObjectsByTypeRetrieves a list of all loaded objects of Type type.
FindObjectsOfTypeGets a list of all loaded objects of Type type.
InstantiateClones the object original and returns the clone.
InstantiateAsyncCaptures a snapshot of the original object (that must be related to some GameObject) and returns the AsyncInstantiateOperation.

Operators

boolDoes 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.

Messages

OnJointBreakCalled when a joint attached to the same game object broke.