- Home /
How to synchronize the position of a gameobject over network which is draggable by every player
In a UNET multiplayer game some gameobjects should be draggable by any connected player / client. In the example on the image you see that the DraggableObject has a script attached which makes it draggable. This works locally for every client. But then, I wanted to synchronize the position over network so that the current position updates at every client. The gameobject has a NetworkIdentity script with NO local authority and a NetworkTransform component attached. Then, if the player, which is also the server at the same time, is dragging the DraggableObject, the position will be well updated at the other clients - as expected. HOWEVER, if any other client but the also-server player drags the DraggableObject, the position does not get updated over Network. How can I realize this?
Answer by dullmist861357 · Mar 16, 2017 at 08:24 PM
You need to have the local authority box checked for this to work. Create a c sharp script and call it something like SetUpLocalDrag. Put in something like this.
using UnityEngine; using System.Collections; using UnityEngine.Networking;
public class SetupLocalDrag : NetworkBehaviour {
// Use this for initialization
void Start () {
if (isLocalPlayer)
GetComponent<*name of your script you use for your drag*>().enabled = true;
}
}
Make sure that there is NetworkBehavior instead of the standard MonoBehavior and make sure that you have the "UsingUnityEngine.networking" reference at the top. Hope this helped.
also add this to the object or player that your drag script is a component of.
Thanks for your reply. Unfortunately your script does not change anything. in fact, it just enables the Draggable script. I tried it out anyway - and also enabled LocalPlayerAuthority. But the result is the same: If the client, which is also the server at the same time, moves the Draggable GameObject, the movement will be synchronized for all players. But if a client, which is NOT the server at the same time, moves the Draggable GameObject, the movement is just for the local player. Any idea?