- Home /
Setting a Transform or GameObject SyncVar from a Command
I'm fairly new to networking and I'm trying to spawn objects and making them a child of a child of the root player prefab running the script (and command).
Illustration of my system:
-Player (in prefab and running the script)
-camera (in prefab)
-model (in prefab)
-object1 (spawned runtime through NetworkServer.Spawn())
-object2 (spawned runtime)
-object3 (...)
-object4
-...
Giving the newly spawned objects a parent which is synced across all clients via a small sync script works fine as long as the set parent is the root player, but when I try to make the child of the player the parent of the new objects the "parent" returns "null" in the sync script on the client side, it works fine on the server side however.
My Sync script:
using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
public class Sync : NetworkBehaviour {
[SyncVar]
public Transform parent;
[SyncVar]
public Vector3 localScale;
[SyncVar]
public Quaternion rotation;
[SyncVar]
public Vector3 position;
[SyncVar]
public Vector3 localPosition;
void Start()
{
if (!localScale.Equals(default(Vector3)))
transform.localScale = localScale;
if (parent != null)
transform.SetParent(parent);
print("parent: " + parent);
if (!rotation.Equals(default(Quaternion)))
transform.rotation = rotation;
else if (rotation.Equals(default(Quaternion)) && transform.parent != null)
transform.rotation = Quaternion.Euler(parent.transform.rotation.eulerAngles + transform.rotation.eulerAngles);
if (!position.Equals(default(Vector3)))
transform.position = position;
if (!localPosition.Equals(default(Vector3)))
transform.localPosition = localPosition;
}
}
Setting the parent:
Transform model = transform.FindChild("Model");
Sync sync = cannon.GetComponent<Sync>();
sync.parent = model;
I'm aware of the fact that you can't put Transforms or GameObjects in SyncVars, but it seemed to work sort of -ish, I know it's definetely not the right way, but I'm all out of ideas on how to continue, any help would be appriciated.
Bump. I'm having the same problem. Did you ever figure it out?
Your answer
Follow this Question
Related Questions
How to sync non-player objects movement in multiplayer game? 0 Answers
Correct way to spawn and move objects 1 Answer
Multiplayer Custom Object Spawning (ClientScene.RegisterSpawnHandler) Out Of Sync Error 1 Answer
UNET Clients spawn Childs on Player & Client Sync problems. 0 Answers
all parents of a transform 1 Answer