public override void OnStartClient() { ChangeGameObjectName(Name); PlayerNameChanged.AddListener(ChangeGameObjectName); SetPlace(); PlayerState = PlayerState.Connected; }
public void SetPlayerName(string playerName) { PlayerName = playerName; PlayerNameChanged?.Invoke(this, new NameChangedEventArgs { PlayerName = PlayerName }); }
//All functions are called on the clients with reference to this object when the servers variable change, so in effect its only a setter but over the network private void OnNameChanged(string name) { m_Name = name; OnNetworkPlayerDataUpdated(); if (PlayerNameChanged != null) { PlayerNameChanged.Invoke(this); } }
public override void OnStartServer() { ChangeGameObjectName(Name); PlayerNameChanged.AddListener(ChangeGameObjectName); if (isServer && !isClient) { PlaceManager.Instance.SetServerPlayerPosition(this); } PlayerState = PlayerState.Connected; }
/// <summary> /// Handles renaming each player based on the recommendation from the server /// </summary> /// /// <param name="renames">Object containing list of player rename actions to be taken</param> private void HandlePlayerRename(PlayerRename renames) { foreach (PlayerRenameItem rename in renames.PlayerRenames) { Player foundPlayer = localPlayers.FirstOrDefault(p => p.PlayerId == rename.PlayerId); if (foundPlayer == null) { AddRemoteStatusMessage($"No player with ID = {rename.PlayerId}, Name = {rename.OriginalName} found in local list"); continue; } AddRemoteStatusMessage($"Renaming {rename.OriginalName} to {rename.NewName} due to duplicate on remote server"); foundPlayer.Name = rename.NewName; PlayerNameChanged?.Invoke(rename.PlayerId, rename.NewName); } }
private void OnPlayerNameChanged(PlayerNameChanged seerEvent) => PlayerNameChanged?.Invoke(seerEvent);
public static void OnPlayerNameChanged(string prevName, string newName) { PlayerNameChanged?.Invoke(prevName, newName); }