With Humanoid Control you can extend your scene to a multiplayer environment very easily.


In the Humanoid Preferences you can select which networking package you want to use. Go to Edit Menu->Preferences->Humanoid->Networking Support and select the desired networking package.

Note: The Photon Networking option is only available when the Photon Networking package has been imported into the project.

Remote avatar

For networked setup, you need to select an avatar to be used on remote clients. This avatar can be different from the local avatar. This enables you to optimize the first person avatar for the local player (for example an avatar without a head and high-poly hands) while having an avatar optimized for third person at remote clients.

This avatar is a normal avatar with an Animator and a Humanoid Rig and without a Humanoid Control script.

Make a multiplayer scene

The HumanoidPun or HumanoidUnet player prefabs implement all networking functionality necessary to turn a single player scene into a multiplayer scene.

These player prefabs can be spawned on the networking by the Humanoid Networking Starter script or the Unity Network Manager (HUD) script as the Player Prefab.

Humanoid Unet & HumanoidPun

When these player prefabs are spawned, they will scan the scene for existing local Humanoids and it will monitor the instantiation of new humanoids. It will spawn remote humanoids on every remote client so that remote players will see these humanoids in their environment. From then on, these humanoids will be fully synchronized, including actions like grabbing and dropping objects and changing the avatar.

Send Rate (Unity Networking only) the number of updates per second communicated through the network
Sync Finger Swing if this is disabled only finger curl values will be synchronized. This will reduce the needed bandwidth. When enabled finger swing is also synchronized. This will lead to better hand poses.
Create Local Remotes (Unity Networking only) this will create local remote avatars which can be convenient for debugging purposes.
Debug controls the amount of debugging information in the Console Window of Unity.
Is Local During gameplay this field tells if this script is controlling the local humanoids.
Humanoids During gameplay this list will contain all humanoids in the scene controlled by this component. These will either be a list of all detected local Humanoids or a list of all controller remote Humanoids.