public override INetworkGameObject CreateGameObject() { INetworkGameObject g = GameObject.Instantiate(scoreBoardPrefab); g.gameObject.SetActive(false); return(g); }
public void ReceiveReplicatedGameObjects(ServerWorldState state) { receivedGameObjects.Clear(); // Update objects for (int i = 0; i < state.ObjectStatesLength; i++) { NetworkObjectState objectState = state.GetObjectStates(i); INetworkGameObject go = ReceiveReplicatedGameObject(objectState); receivedGameObjects.Add(go); } // Destroy objects we didn't receive in this update foreach (INetworkGameObject go in previouslyReceivedGameObjects) { if (!receivedGameObjects.Contains(go)) { linkingContext.RemoveGameObject(go); go.Destroy(); } } // Swap the previous and current sets HashSet <INetworkGameObject> temp = previouslyReceivedGameObjects; previouslyReceivedGameObjects = receivedGameObjects; receivedGameObjects = temp; }
void TagLocalPlayer() { INetworkGameObject player = this.GetLocalPlayer(); if (player != null) { player.gameObject.tag = "Player"; } }
public void RemoveGameObject(INetworkGameObject go) { if (!gameObjectToNetworkIdDictionary.ContainsKey(go)) { return; } int networkId = gameObjectToNetworkIdDictionary[go]; networkIdToGameObjectDictionary.Remove(networkId); gameObjectToNetworkIdDictionary.Remove(go); }
public int GetNetworkId(INetworkGameObject go, bool shouldCreateIfNotFound) { if (gameObjectToNetworkIdDictionary.ContainsKey(go)) { return(gameObjectToNetworkIdDictionary[go]); } else if (shouldCreateIfNotFound) { AddGameObject(go); return(gameObjectToNetworkIdDictionary[go]); } return(0); }
private INetworkGameObject ReceiveReplicatedGameObject(NetworkObjectState state) { int networkId = state.NetworkId; byte classId = (byte)state.StateType; INetworkGameObject go = linkingContext.GetGameObject(networkId); if (go == null) { go = objectCreationRegistry.CreateGameObject(classId); linkingContext.AddGameObject(go, networkId); } go.Replicate(state); return(go); }
public void AddGameObject(INetworkGameObject go, int networkId) { networkIdToGameObjectDictionary.Add(networkId, go); gameObjectToNetworkIdDictionary.Add(go, networkId); }
private void AddGameObject(INetworkGameObject go) { AddGameObject(go, nextNetworkId++); }