ConfigurableJoint

Struct ConfigurableJoint 

Source
pub struct ConfigurableJoint {
Show 45 fields pub m_Anchor: Vector3f, pub m_AngularXDrive: JointDrive, pub m_AngularXMotion: i32, pub m_AngularYLimit: SoftJointLimit, pub m_AngularYMotion: i32, pub m_AngularYZDrive: JointDrive, pub m_AngularZLimit: SoftJointLimit, pub m_AngularZMotion: i32, pub m_Axis: Vector3f, pub m_BreakForce: f32, pub m_BreakTorque: f32, pub m_ConfiguredInWorldSpace: bool, pub m_ConnectedBody: PPtr, pub m_GameObject: PPtr, pub m_HighAngularXLimit: SoftJointLimit, pub m_LinearLimit: SoftJointLimit, pub m_LowAngularXLimit: SoftJointLimit, pub m_ProjectionAngle: f32, pub m_ProjectionDistance: f32, pub m_ProjectionMode: i32, pub m_RotationDriveMode: i32, pub m_SecondaryAxis: Vector3f, pub m_SlerpDrive: JointDrive, pub m_TargetAngularVelocity: Vector3f, pub m_TargetPosition: Vector3f, pub m_TargetRotation: Quaternionf, pub m_TargetVelocity: Vector3f, pub m_XDrive: JointDrive, pub m_XMotion: i32, pub m_YDrive: JointDrive, pub m_YMotion: i32, pub m_ZDrive: JointDrive, pub m_ZMotion: i32, pub m_AngularXLimitSpring: Option<SoftJointLimitSpring>, pub m_AngularYZLimitSpring: Option<SoftJointLimitSpring>, pub m_AutoConfigureConnectedAnchor: Option<bool>, pub m_ConnectedAnchor: Option<Vector3f>, pub m_ConnectedArticulationBody: Option<PPtr>, pub m_ConnectedMassScale: Option<f32>, pub m_EnableCollision: Option<bool>, pub m_EnablePreprocessing: Option<bool>, pub m_Enabled: Option<bool>, pub m_LinearLimitSpring: Option<SoftJointLimitSpring>, pub m_MassScale: Option<f32>, pub m_SwapBodies: Option<bool>,
}
Expand description

ConfigurableJoint is a class of the Unity engine since version 3.4.0. Exert from Unity’s scripting documentation: 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.

Fields§

§m_Anchor: Vector3f

The Position of the anchor around which the joints motion is constrained.

§m_AngularXDrive: JointDrive

Definition of how the joint’s rotation will behave around its local X axis. Only used if Rotation Drive Mode is Swing & Twist.

§m_AngularXMotion: i32

Allow rotation around the X axis to be Free, completely Locked, or Limited according to Low and High Angular XLimit.

§m_AngularYLimit: SoftJointLimit

Boundary defining rotation restriction, based on delta from original rotation.

§m_AngularYMotion: i32

Allow rotation around the Y axis to be Free, completely Locked, or Limited according to Angular YLimit.

§m_AngularYZDrive: JointDrive

Definition of how the joint’s rotation will behave around its local Y and Z axes. Only used if Rotation Drive Mode is Swing & Twist.

§m_AngularZLimit: SoftJointLimit

Boundary defining rotation restriction, based on delta from original rotation.

§m_AngularZMotion: i32

Allow rotation around the Z axis to be Free, completely Locked, or Limited according to Angular ZLimit.

§m_Axis: Vector3f

The Direction of the axis around which the body is constrained.

§m_BreakForce: f32

The force that needs to be applied for this joint to break.

§m_BreakTorque: f32

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

§m_ConfiguredInWorldSpace: bool

If enabled, all Target values will be calculated in world space instead of the object’s local space.

§m_ConnectedBody: PPtr

A reference to another rigidbody this joint connects to. PPtr<Rigidbody>: (3.4.0 - 2022.3.2f1)

§m_GameObject: PPtr

The game object this component is attached to. A component is always attached to a game object. PPtr<GameObject>: (3.4.0 - 2022.3.2f1)

§m_HighAngularXLimit: SoftJointLimit

Boundary defining upper rotation restriction, based on delta from original rotation.

§m_LinearLimit: SoftJointLimit

Boundary defining movement restriction, based on distance from the joint’s origin.

§m_LowAngularXLimit: SoftJointLimit

Boundary defining lower rotation restriction, based on delta from original rotation.

§m_ProjectionAngle: f32

Set 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).

§m_ProjectionDistance: f32

Set the linear tolerance threshold for projection.If the joint separates by more than this distance along its locked degrees of freedom, the solverwill 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).

§m_ProjectionMode: i32

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

§m_RotationDriveMode: i32

Control the object’s rotation with either X & YZ or Slerp Drive by itself.

§m_SecondaryAxis: Vector3f

The joint’s secondary axis.

§m_SlerpDrive: JointDrive

Definition of how the joint’s rotation will behave around all local axes. Only used if Rotation Drive Mode is Slerp Only.

§m_TargetAngularVelocity: Vector3f

This is a Vector3. It defines the desired angular velocity that the joint should rotate into.

§m_TargetPosition: Vector3f

The desired position that the joint should move into.

§m_TargetRotation: Quaternionf

This is a Quaternion. It defines the desired rotation that the joint should rotate into.

§m_TargetVelocity: Vector3f

The desired velocity that the joint should move along.

§m_XDrive: JointDrive

Definition of how the joint’s movement will behave along its local X axis.

§m_XMotion: i32

Allow movement along the X axis to be Free, completely Locked, or Limited according to Linear Limit.

§m_YDrive: JointDrive

Definition of how the joint’s movement will behave along its local Y axis.

§m_YMotion: i32

Allow movement along the Y axis to be Free, completely Locked, or Limited according to Linear Limit.

§m_ZDrive: JointDrive

Definition of how the joint’s movement will behave along its local Z axis.

§m_ZMotion: i32

Allow movement along the Z axis to be Free, completely Locked, or Limited according to Linear Limit.

§m_AngularXLimitSpring: Option<SoftJointLimitSpring>

The configuration of the spring attached to the angular X limit of the joint. SoftJointLimitSpring: (5.0.0f4 - 2022.3.2f1)

§m_AngularYZLimitSpring: Option<SoftJointLimitSpring>

The configuration of the spring attached to the angular Y and angular Z limits of the joint. SoftJointLimitSpring: (5.0.0f4 - 2022.3.2f1)

§m_AutoConfigureConnectedAnchor: Option<bool>

Should the connectedAnchor be calculated automatically? bool: (4.3.0 - 2022.3.2f1)

§m_ConnectedAnchor: Option<Vector3f>

Position of the anchor relative to the connected Rigidbody. Vector3f: (4.3.0 - 2022.3.2f1)

§m_ConnectedArticulationBody: Option<PPtr>

A reference to an articulation body this joint connects to. PPtr<ArticulationBody>: (2020.2.0b1 - 2022.3.2f1)

§m_ConnectedMassScale: Option<f32>

The scale to apply to the inverse mass and inertia tensor of the connected body prior to solving the constraints. f32: (2017.1.0b2 - 2022.3.2f1)

§m_EnableCollision: Option<bool>

Enable collision between bodies connected with the joint. bool: (4.5.0 - 2022.3.2f1)

§m_EnablePreprocessing: Option<bool>

Toggle preprocessing for this joint. bool: (5.0.0f4 - 2022.3.2f1)

§m_Enabled: Option<bool>

bool: (2017.1.0b2 - 2017.1.0b5)

§m_LinearLimitSpring: Option<SoftJointLimitSpring>

The configuration of the spring attached to the linear limit of the joint. SoftJointLimitSpring: (5.0.0f4 - 2022.3.2f1)

§m_MassScale: Option<f32>

The scale to apply to the inverse mass and inertia tensor of the body prior to solving the constraints. f32: (2017.1.0b2 - 2022.3.2f1)

§m_SwapBodies: Option<bool>

Enable 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. bool: (3.5.0 - 2022.3.2f1)

Trait Implementations§

Source§

impl Debug for ConfigurableJoint

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for ConfigurableJoint

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for ConfigurableJoint

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,