Search code examples
c#unity-game-enginemultiplayer

Unity character assets don't work in multiplayer


I'm creating an fps game and I want to have multiplayer. I use the standard character assets from unity but when I join my server with more than two players dey cant see the other player move and when they move both players move. It's like the player move script is run on both players at the same time. So if I press w on own of the clients both players move. I'm coding in c#. no error message but in the console it spams "There are 2 audio listeners in the scene. Please ensure there is always exactly one audio listener in the scene."

standard character assets from unity

player network Identity

Network Manager


Solution

  • You're instantiating a controlled player every time someone joins the server. If they have the same controller components, both of the objects are going to react to controls. Create a non-controllable player prefab and have it react to messages sent from the other clients.

    If you have a movement component separate from your controller component, you can reuse the movement component on the non-controllable object.