Legacy Documentation: Version 5.0
Language: English
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

ConfigurableJoint

Namespace: UnityEngine

/

Inherits from: Joint

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

Sumbission failed

For some reason your suggested change could not be submitted. Please try again 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.

Variables

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 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.
swapBodiesIf enabled, the two connected rigidbodies will be swapped, as if the joint was attached to the other body.
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

Variables

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 (null if there is none attached).
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.
connectedAnchorPosition of the anchor relative to the connected Rigidbody.
connectedBodyA reference to another rigidbody this joint connects to.
enableCollisionEnable collision between bodies connected with the joint.
enablePreprocessingToggle preprocessing for this joint.
hideFlagsShould the object be hidden, saved with the scene or modifiable by the user?
nameThe name of the object.

Public Functions

BroadcastMessageCalls the method named methodName on every MonoBehaviour in this game object or any of its children.
CompareTagIs this game object tagged with tag ?
GetComponentReturns the component of Type type if the game object has one attached, null if it doesn't.
GetComponentInChildrenReturns the component of Type type in the GameObject or any of its children using depth first search.
GetComponentInParentReturns the component of Type type in the GameObject or any of its parents.
GetComponentsReturns all components of Type type in the GameObject.
GetComponentsInChildrenReturns all components of Type type in the GameObject or any of its children.
GetComponentsInParentReturns all components of Type type in the GameObject or any of its parents.
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.
GetInstanceIDReturns the instance id of the object.
ToStringReturns the name of the game object.

Static Functions

DestroyRemoves a gameobject, component or asset.
DestroyImmediateDestroys the object obj immediately. You are strongly recommended to use Destroy instead.
DontDestroyOnLoadMakes the object target not be destroyed automatically when loading a new scene.
FindObjectOfTypeReturns the first active loaded object of Type type.
FindObjectsOfTypeReturns a list of all active loaded objects of Type type.
InstantiateClones the object original and returns the clone.

Operators

boolDoes the object exist?
operator !=Compares if two objects refer to a different object.
operator ==Compares if two objects refer to the same.

Messages

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