private void ClientHandleUMsgSpawnObject(Message m) { if (isServer) { return; } UMsgSpawnObject msg = m as UMsgSpawnObject; GameObject newObject = null; if (msg.sceneId != UNetworkIdentity.InvalidNetId) { newObject = sceneInitialObjects[msg.sceneId].gameObject; newObject.SetActive(true); } else { newObject = GameObject.Instantiate(registeredPrefabs[msg.assetId]); } UNetworkIdentity iden = newObject.GetComponent <UNetworkIdentity>(); iden.FromBytes(msg.objectState, true); iden.netId = msg.netId; networkObjects.Add(iden.netId, iden); iden.CallEventOnSpawn(); }
public void SpawnWithAuthority(GameObject networkGameObject, ulong owner) { if (!isServer) { return; } UNetworkIdentity iden = networkGameObject.GetComponent <UNetworkIdentity>(); if (iden.sceneId != UNetworkIdentity.InvalidNetId) { iden.gameObject.SetActive(true); } iden.netId = netIdCounter++; iden.ownerId = owner; networkObjects.Add(iden.netId, iden); serverObject.SendToAll(new UMsgSpawnObject(iden), Lidgren.Network.NetDeliveryMethod.ReliableOrdered); iden.CallEventOnSpawn(); }