- Home /
 
Using Morph3D Content Packs with Unity Networking
I'm trying to use Morph3D and content packs for my characters in a multiplayer game. I'm not sure if this is a morph 3d support question or unity networking question.
I have a Morph 3D character prefab that gets instantiated and parented to the player spawned prefab, this works fine, all connected clients are synchronized. To add content packs I issue a [Command] from the script attached to the player prefab, from this [Command] I issue a [ClientRpc] to add the content pack on clients.
Here is the problem: Clients that connect only see the other players content packs that have connected after themselves...all previously connected clients are seen without their content pack. So Client A will see everything synchronized properly but Client B will not see Client A's content pack but will see Client C,D,E etc. Does that make sense? I'm having a hard time wrapping my head around what is happening here. Every client see's their own self with the content pack and I haven't found any runtime errors. Below I pasted the relevant code:
     // this is a network behavior attached to the player prefab that network manager spawns:
     
     void Start() { if (!isLocalPlayer) { return; } 
         
         CmdAddM3DContentPack();
     
     }
     
     [Command]
     void CmdAddM3DContentPack() {
         
         // Instantiate on server:
         var M3DPantsPrefab = Resources.Load("BaseModels/M3DMale/ContentPacks/G2MEWPants/G2MEWPants") as GameObject;
         var M3DPantsObject = (GameObject)Instantiate(M3DPantsPrefab, transform.position, Quaternion.identity);
         NetworkServer.SpawnWithClientAuthority(M3DPantsObject, connectionToClient);
         
         // add on server:
         foreach (Transform t in transform) { if (t.name == "Model") { // looks for the child object with the Morph 3D character manager comp. 
         
             var charManagerM3D = t.GetComponent<M3DCharacterManager>();
             ContentPack cPack = new ContentPack(M3DPantsObject);
             charManagerM3D.AddContentPack(cPack);
             
         }}
         
         // add on clients:
         RpcAddM3DContentPackOnClients(M3DPantsObject);
         
     }
     
     [ClientRpc]
     void RpcAddM3DContentPackOnClients(GameObject contentPack) { 
         
         foreach (Transform t in transform) { if (t.name == "Model") { 
         
             var charManagerM3D = t.GetComponent<M3DCharacterManager>();
             ContentPack cPack = new ContentPack(contentPack);
             charManagerM3D.AddContentPack(cPack);
             
         }}
         
     }
 
               Can anyone help me understand why this is happening?
Your answer
 
             Follow this Question
Related Questions
Unity networking tutorial? 6 Answers
Animation & sound over network 1 Answer
Syncing terrain over Network 0 Answers
How do I add gravity to my object, and how do I fix my network problem? 1 Answer
Problems/Errors With Photon Conversion.. [ScreenShot] 0 Answers