private void SyncronizePlayerCharacterOnClients(PlayerSpawnData spawnData) { ServerManager.Instance.SendToClient(spawnData.ID, Tags.SpawnPlayer, spawnData); ServerManager.Instance.SendNewPlayerToOthers(spawnData.ID, spawnData.Position, spawnData.PlayerCharacterName); ServerManager.Instance.SendOthersToNewPlayer(spawnData.ID, CurrentPlayers); }
public void SendOthersToNewPlayer(ushort clientID, Dictionary <ushort, GameObject> players) { foreach (KeyValuePair <ushort, GameObject> player in players) { if (player.Key != clientID) { PlayerSpawnData spawnData = new PlayerSpawnData(player.Key, player.Value.transform.position, ConnectedClients[player.Key].CurrentCharacterData.CharacterName); SendToClient(clientID, Tags.SpawnPlayer, spawnData); } } }
public void SpawnPlayerOnServer(ushort clientID, PlayFabCharacterData characterData) { if (!CurrentPlayers.ContainsKey(clientID)) { InstantiateAndAddPlayer(clientID, characterData.WorldPosition); PlayerSpawnData spawnData = new PlayerSpawnData( clientID, characterData.WorldPosition, characterData.CharacterName ); SyncronizePlayerCharacterOnClients(spawnData); } else { Debug.Log("Player already spawned for this client"); } }
public void SendNewPlayerToOthers(ushort clientID, Vector3 position, string name) { PlayerSpawnData spawnData = new PlayerSpawnData(clientID, position, name); SendToAllExcept(clientID, Tags.SpawnPlayer, spawnData); }