ParentConstraint
Constrains the transformation of a GameObject based on the position and rotation of one or more sources.
Read time 7 minutesLast updated 2 days ago
Definition
- Type: Class
- Namespace: UnityEngine.Animations
- Assembly: UnityEngine.AnimationModule
- Inherits from: Behaviour
- Implements: IConstraint
[RequireComponent(typeof(Transform))]public sealed class ParentConstraint : Behaviour, IConstraint
Remarks
Use this constraint to move and rotate a GameObject based on the position and rotation of other sources. For example, you can use this constraint to place a sword in the hand of a character. You can also adjust the weight of each source to influence whether the constrained GameObject follows the position and rotation of one source over another source.
Refer to Parent Constraint Component for more details.
Examples
// This example uses a ParentConstraint to constrain a GameObject based on the position and rotation of two sources. // The first source has a greater influence than the second source based on their assigned weight.using UnityEngine;using UnityEngine.Animations;public class ParentConstraintExample : MonoBehaviour{ public Transform sourceA; public Transform sourceB; private ParentConstraint m_ParentConstraint; void Start() { m_ParentConstraint = gameObject.AddComponent<ParentConstraint>(); ConstraintSource source1 = new ConstraintSource { sourceTransform = sourceA, weight = 0.6f }; ConstraintSource source2 = new ConstraintSource { sourceTransform = sourceB, weight = 0.4f }; m_ParentConstraint.AddSource(source1); m_ParentConstraint.AddSource(source2); m_ParentConstraint.constraintActive = true; }}
Properties
Property | Description |
|---|---|
| constraintActive | Activates or deactivates the constraint. |
| locked | Locks the offsets and position (translation and rotation) at rest. |
| rotationAtRest | The rotation used when the sources have a total weight of 0. |
| rotationAxis | The rotation axes affected by the ParentConstraint. |
| rotationOffsets | The rotation offsets from the constrained orientation. |
| sourceCount | The number of sources set on the component (read-only). |
| translationAtRest | The position of the object in local space, used when the sources have a total weight of 0. |
| translationAxis | The translation axes affected by the ParentConstraint. |
| translationOffsets | The translation offsets from the constrained orientation. |
| weight | The weight of the constraint component. |
Methods
Method | Description |
|---|---|
| AddSource | Adds a constraint source. |
| GetRotationOffset | Gets the rotation offset associated with a source by index. |
| GetSource | Gets a constraint source by index. |
| GetSources | Gets the list of sources. |
| GetTranslationOffset | Gets the rotation offset associated with a source by index. |
| RemoveSource | Removes a source from the component. |
| SetRotationOffset | Sets the rotation offset associated with a source by index. |
| SetSource | Sets a source at a specified index. |
| SetSources | Sets the list of sources on the component. |
| SetTranslationOffset | Sets the translation offset associated with a source by index. |
Inheritance
Operators
Operator | Description |
|---|---|
| operator == | Compares two object references to see if they refer to the same object. |
| bool | Determines whether the object exists. |
| operator != | Compares if two objects refer to a different object. |