/// <summary> /// Called on every NetworkBehaviour when it is activated on a client. /// <para>Objects on the host have this function called, as there is a local client on the host. The values of SyncVars on object are guaranteed to be initialized correctly with the latest state from the server when this function is called on the client.</para> /// </summary> public override void OnStartClient() { Debug.Log("OnStartClient"); // Instantiate the player UI as child of the Players Panel playerUIObject = Instantiate(playerUIPrefab, CanvasUI.instance.playersPanel); playerUI = playerUIObject.GetComponent <PlayerUI>(); // wire up all events to handlers in PlayerUI OnPlayerNumberChanged = playerUI.OnPlayerNumberChanged; OnPlayerColorChanged = playerUI.OnPlayerColorChanged; OnPlayerDataChanged = playerUI.OnPlayerDataChanged; // Invoke all event handlers with the initial data from spawn payload OnPlayerNumberChanged.Invoke(playerNumber); OnPlayerColorChanged.Invoke(playerColor); OnPlayerDataChanged.Invoke(playerData); }
/// <summary> /// Called on every NetworkBehaviour when it is activated on a client. /// <para>Objects on the host have this function called, as there is a local client on the host. The values of SyncVars on object are guaranteed to be initialized correctly with the latest state from the server when this function is called on the client.</para> /// </summary> public override void OnStartClient() { // Instantiate the player UI as child of the Players Panel playerUIObject = Instantiate(playerUIPrefab, CanvasUI.instance.playersPanel); PlayerUI playerUI = playerUIObject.GetComponent <PlayerUI>(); // wire up all events to handlers in PlayerUI OnPlayerNumberChanged = playerUI.OnPlayerNumberChanged; OnPlayerColorChanged = playerUI.OnPlayerColorChanged; OnPlayerDataChanged = playerUI.OnPlayerDataChanged; // Invoke all event handlers with the initial data from spawn payload OnPlayerNumberChanged.Invoke(playerNumber); OnPlayerColorChanged.Invoke(playerColor); OnPlayerDataChanged.Invoke(playerData); // Set isLocalPlayer for this Player in UI for background shading if (isLocalPlayer) { playerUI.SetLocalPlayer(); } }