Understanding Mount Points

Mount points are like magnets; they work in pairs. When two mount points are close together, they snap together and create a parent-child relationship.

The object being dragged is the child and the object it’s dragged to is the parent.

 

Colors

Mount points in the scene are colored to help determine who they belong to.

White mount points simply show mount points
that exist in the scene for any object.

Yellow mount points are mount points that exist
on the currently selected object.

The green mount point represents the mount point
that is currently selected in the inspector.

 

Unity Hierarchy


The mount point system doesn’t create its own hierarchy. Instead, it leverages what Unity has already done. That means it works natively with any other Unity system.

When a mount point is created, you’ll actually find it inside of the Unity hierarchy. In the example below, the ‘Right hand’ mount point is a child of the skeleton’s ‘Right Hand’ bone.

By tying mount points to bones in this way, as the animation moves the bone, the mount point (and anything connected to it) moves as well.
When another object ‘snaps’ its mount point to a parent mount point, it then becomes a child in the hierarchy too.

 

The Mount Point Inspector will keep the Unity hierarchy in sync as mount points are created, moved, and deleted. You don’t have to manage anything yourself.

Mount Point Orientation

Once connected, child mount points orient themselves (and the GameObjects that own them) to the rotation of the parent mount point.

This allows you to take objects created from different authors or that are oriented different ways and get the same result when you mount them.

Take two swords for example. One could be created standing on its
end (the right one) while another could have been created lying
down (the left one). When we put them in the character’s hand, we
want them to be rotated as if the character is holding them
regardless of how they were created.

This is done with the mount point’s ‘orientation’ property.

When we build the mount points for the swords, we’ll make sure
they are oriented to fit the parent correctly.

For the two swords, we want the mount points to be position at
the hilt with the forward direction (blue arrow) along the blade.

This is because when we build the mount point for the hand, we’re going to have that mount point’s forward direction (blue arrow) coming out of the hand too.

When the sword is connected to the hand, it will automatically rotate so
that its orientation matches the orientation of the hand’s mount point.

Mount List vs. Mount

To use mount points with an object, a Mount List or Mount component needs to be added to a game object. Both of these objects are containers that manage the contained mount points.

Mount List

The Mount List is a beefy container that allows you to set up multiple mount
points and skinned items. Typically, this is the component you’ll use on
characters, vehicles, etc.

The top section is used to manage all the mount points. Other mount points
can then be connected to these.

The bottom section is used to manage the skinned mesh items that are
mounted to your character. By adding items, you can instantiate them in the
editor or flag them to be created at run-time.

Mount

The Mount is a lighter version that contains one mount point.

This component is handy when you’re dealing with objects that will only be
children to other mount points. For example, swords, shields, tails, etc.

It should be noted that the mount point held by a Mount cannot have
children themselves.