/World-Constraint

A world-fixed object, held in place with a constraint.

Primary LanguageC#MIT LicenseMIT

World Constraint

Generic badge Generic badge Generic badge Generic badge Generic badge

Generic badge Generic badge

A world-fixed object, held in place with a constraint

WorldConstraint


How it works

  • World Constraint uses World.prefab from the assets as a parent constraint source. World.prefab is not in the scene, so World Constraint will always stay at position 0, 0, 0.
  • The parent constraint on Container uses Reset Target as a source, which is used to bring Container to your avatar.

Install guide

Worldconstraint-19.mp4
  • Drag & drop the World Constraint prefab into the base of your Hierarchy.
  • Right click and unpack the prefab, then drag & drop it onto your avatar.
  • Expand the prefab hierarchy and find Reset Target
  • Move Reset Target outside of World Constraint and place it anywhere in your avatars hierarchy as needed.

Note

When building for Quest, you will have to remove unsupported components and shaders

How to use

  • Place the objects you want to leave in world space inside World Constraint -> Container.
    • Alternatively you can constrain the objects to Container.
  • Disable the Container parent constraint component to leave it in world space, and enable it to reset the Container to Reset Target.

Additional notes

  • By default, the Container and its contents will not scale with your avatar. If you want the Container and its contents to scale with your avatar, add a Scale Constraint to the Container object, set your avatar as the source, and activate it.
  • If your Reset Target is directly under your avatar, it won't properly rotate with you in full body.

Performance stats

Constraints:        3
Constraint Depth:   3

Hierarchy layout

World Constraint
|-Container
|  |-Cube
|-Reset Target

Contributors

License

World Constraint is available as-is under MIT. For more information see LICENSE.