/// <summary> /// Render a UI for the room. Override to provide your on UI /// </summary> public virtual void OnGUI() { if (!showRoomGUI) { return; } NetworkRoomManager room = NetworkManager.singleton as NetworkRoomManager; if (room) { if (!room.showRoomGUI) { return; } if (!NetworkManager.IsSceneActive(room.RoomScene)) { return; } DrawPlayerReadyState(); DrawPlayerReadyButton(); } }
public void RpcDisableRoomPlayer() { NetworkRoomManager room = NetworkManager.singleton as NetworkRoomManager; if (room != null) { room.DisableRoomPlayers(); } }
public void CmdChangeReadyState(bool readyState) { readyToBegin = readyState; NetworkRoomManager room = NetworkManager.singleton as NetworkRoomManager; if (room != null) { room.ReadyStatusChanged(); } }
public void ChangePlayerName(string playName) { playerName = playName; NetworkRoomManager room = NetworkManager.singleton as NetworkRoomManager; if (room != null) { room.NameStatusChanged(this); } }
public void RpcDisconnectRoomPlayer() { NetworkRoomManager room = NetworkManager.singleton as NetworkRoomManager; if (room != null) { room.roomSlots.Remove(this); room.roomPlayers--; if (readyToBegin) { room.playersReady--; } room.onRoomStatusChanged.Invoke(false); } }
public override void OnStartClient() { if (LogFilter.Debug) { Debug.LogFormat("OnStartClient {0}", SceneManager.GetActiveScene().name); } base.OnStartClient(); networkRoomManager = NetworkManager.singleton as NetworkRoomManager; gameObject.tag = "NetworkRoomPlayer"; gameObject.name = "RoomPlayer_Client" + clientIndex; // UpdateLocalPlayerCount(); Debug.Log("clientIndex: " + clientIndex + " ,localPlayerCount: " + localPlayerCount, gameObject); // load additional local players from non-local clients /* * if (isLocalPlayer && isServer) * { * Debug.Log("isLocalPlayer && isServer"); * AddLocalPlayer(); * } * else if (isLocalPlayer && !isServer) * { * Debug.Log("isLocalPlayer && !isServer"); * CmdAddLocalPlayer(); * } * Debug.Log("asd && !zxc"); */ if (!isServer) { CmdAddLocalPlayer(); } else { AddLocalPlayer(); } }
/// <summary> /// Do not use Start - Override OnStartrHost / OnStartClient instead! /// </summary> public void Start() { roomManager = FindObjectOfType <NetworkRoomManager>(); if (roomManager != null) { // NetworkRoomPlayer object must be set to DontDestroyOnLoad along with NetworkRoomManager // in server and all clients, otherwise it will be respawned in the game scene which would // have undesireable effects. if (roomManager.dontDestroyOnLoad) { DontDestroyOnLoad(gameObject); } OnClientEnterRoom(); } else { Debug.LogError("RoomPlayer could not find a NetworkRoomManager. The RoomPlayer requires a NetworkRoomManager object to function. Make sure that there is one in the scene."); } }
/// <summary> /// Render a UI for the room. Override to provide your on UI /// </summary> public virtual void OnGUI() { if (!showRoomGUI) { return; } NetworkRoomManager room = NetworkManager.singleton as NetworkRoomManager; if (room) { if (!room.showRoomGUI) { return; } if (SceneManager.GetActiveScene().name != room.RoomScene) { return; } GUILayout.BeginArea(new Rect(20f + (index * 100), 200f, 90f, 130f)); GUILayout.Label($"Player [{index + 1}]"); if (readyToBegin) { GUILayout.Label("Ready"); } else { GUILayout.Label("Not Ready"); } if (((isServer && index > 0) || isServerOnly) && GUILayout.Button("REMOVE")) { // This button only shows on the Host for all players other than the Host // Host and Players can't remove themselves (stop the client instead) // Host can kick a Player this way. GetComponent <NetworkIdentity>().connectionToClient.Disconnect(); } GUILayout.EndArea(); if (NetworkClient.active && isLocalPlayer) { GUILayout.BeginArea(new Rect(20f, 300f, 120f, 20f)); if (readyToBegin) { if (GUILayout.Button("Cancel")) { CmdChangeReadyState(false); } } else { if (GUILayout.Button("Ready")) { CmdChangeReadyState(true); } } GUILayout.EndArea(); } } }
//CA:::: void showBanners() { NetworkRoomManager room = NetworkManager.singleton as NetworkRoomManager; if (room && playerBanner != null) { if (!NetworkManager.IsSceneActive(room.RoomScene)) { return; } /*DRAW PLAYER READY STATE*/ playerBanner.transform.GetChild(1).GetComponent <Text>().text = playerName; if (readyToBegin) { playerBanner.transform.GetChild(2).transform.GetChild(0).GetComponent <Text>().text = "Ready!"; var newColorBlock = playerBanner.transform.GetChild(2).gameObject.GetComponent <Button>().colors; newColorBlock.disabledColor = new Color(0.1826273f, 0.6792453f, 0.2567928f, 1); playerBanner.transform.GetChild(2).gameObject.GetComponent <Button>().colors = newColorBlock; } else { playerBanner.transform.GetChild(2).transform.GetChild(0).GetComponent <Text>().text = "Not Ready"; var newColorBlock = playerBanner.transform.GetChild(2).gameObject.GetComponent <Button>().colors; newColorBlock.disabledColor = new Color(0.745283f, 0.1089801f, 0.1210705f, 1); playerBanner.transform.GetChild(2).gameObject.GetComponent <Button>().colors = newColorBlock; } if ((isServer && index > 0) || isServerOnly) { if (playerBanner.transform.GetChild(3).gameObject != null) { playerBanner.transform.GetChild(3).gameObject.SetActive(true); playerBanner.transform.GetChild(3).gameObject.GetComponent <Button>().onClick.AddListener(btnKick); } } else { if (playerBanner.transform.GetChild(3).gameObject != null) { playerBanner.transform.GetChild(3).gameObject.SetActive(false); } } /*DRAW PLAYER READY BUTTON*/ if (NetworkClient.active && isLocalPlayer) { if (readyToBegin) { playerBanner.transform.GetChild(2).transform.GetChild(0).GetComponent <Text>().text = "Cancel"; playerBanner.transform.GetChild(2).gameObject.GetComponent <Button>().onClick.AddListener(btnNotReady); } else { playerBanner.transform.GetChild(2).transform.GetChild(0).GetComponent <Text>().text = "Ready!"; playerBanner.transform.GetChild(2).gameObject.GetComponent <Button>().onClick.AddListener(btnReady); } } else { playerBanner.transform.GetChild(2).GetComponent <Button>().interactable = false; } } void btnKick() { GetComponent <NetworkIdentity>().connectionToClient.Disconnect(); } void btnReady() { CmdChangeReadyState(true); } void btnNotReady() { CmdChangeReadyState(false); } }