Second User Cannot Manipulate Object [PUN 2]

Hello everyone! Thank you for having me here. I cannot seem to allow a second user to move or rotate an object. They can scale the object but not move it. The first user that connects to the room can move, rotate, and scale the object, but the second user that connects can ONLY scale (the object stays static when they attempt to move or rotate it).

Deployment platform is Hololens 2 with two unique headsets connecting to a PUN room. All looks good on the PUN cloud with connections. I'm using the MultiUserCapabilities tutorial as a foundation in Unity. I know that works because I deployed it to the headsets and had no issues moving the Rover asset around between users. So I then put a custom prefab into the scene and applied the same components as the Rover/tutorial assets (Photon View, Photon Transform View, and Generic Net Sync seemed to automatically get applied, I don't recall adding that myself). That's when I broke it.

If you could set me straight I'd really appreciate it. Thank you so much!

Answers

  • In most networking solutions, one user has control of a networked object. This is the state authority for the object. In PUN 2, clients are authoritative for the objects they created and the Master Client is authoritative for scene network objects and those where the controller is gone.

    Players who are not in control of an object can't move it. They may send events / RPCs to the controller to do that. Or, of course, they could modify the object locally (and detach it from incoming network updates).

    I don't know what Generic Net Sync is.

  • So the fact that the second user can scale the object, but not move or rotate the object, doesn't factor into this? Wouldn't that be a form of user-initiated control?

  • Forgot to mention this:

    Scaling is often disabled for networked objects. When that's the case, the authority about the scale is effectively dropped and anyone could scale at will but it's not synced either.