void Start() { if (isServer) { idCount++; id = idCount; } if (isPlayer) { id = 0; } objSync = new ObjectSync(id, prefabId); position = new PositionSync(id, transform.position); rotation = new RotationSync(id, transform.rotation); if (!isServer) { ViewerManager.instance.synchronizables.Add(this); } if (isServer) { StartCoroutine(SyncPos()); StartCoroutine(SyncRot()); NetworkManager.instance.SendJSON("newenemy", JsonUtility.ToJson(objSync)); } }
public void Receive_Kill(SocketIOEvent e) { ObjectSync objSync = JsonUtility.FromJson <ObjectSync> (e.data.ToString()); // Kill the game object using the JSON's id. for (int i = 0; i < synchronizables.Count; i++) { if (synchronizables [i].id == objSync.id) { Destroy(synchronizables [i].gameObject); } } }
public void Receive_Spawn(SocketIOEvent e) { ObjectSync objSync = JsonUtility.FromJson <ObjectSync> (e.data.ToString()); // Create the game object using the JSON's prefabId GameObject obj = Instantiate(enemyPrefabs [objSync.prefabId]); Synchronizable sync = obj.GetComponent <Synchronizable> (); sync.isServer = false; sync.id = objSync.id; // Destroy Enemy component if it exists. Enemy enemy = obj.GetComponent <Enemy> (); if (enemy != null) { Destroy(enemy); } }