// 为了实现在没有足够的玩家时不能准备 /// <summary> /// Raises the lobby server create lobby player event. /// </summary> /// <param name="conn">Conn.</param> /// <param name="playerControllerId">Player controller identifier.</param> public override GameObject OnLobbyServerCreateLobbyPlayer(NetworkConnection conn, short playerControllerId) { GameObject obj = Instantiate(lobbyPlayerPrefab.gameObject) as GameObject; LobbyPlayer newPlayer = obj.GetComponent <LobbyPlayer>(); newPlayer.ToggleJoinButton(numPlayers + 1 >= minPlayers); UpdateReadyButtonState(numPlayers + 1 >= minPlayers); return(obj); }
// ----------------- 服务器回调 ------------------ public void UpdateReadyButtonState(bool condition) { for (int i = 0; i < lobbySlots.Length; ++i) { LobbyPlayer p = lobbySlots[i] as LobbyPlayer; if (p != null) { p.ToggleJoinButton(condition); } } }
public override void OnLobbyServerPlayerRemoved(NetworkConnection conn, short playerControllerId) { for (int i = 0; i < lobbySlots.Length; ++i) { LobbyPlayer p = lobbySlots[i] as LobbyPlayer; if (p != null) { p.RpcUpdateRemoveButton(); p.ToggleJoinButton(numPlayers + 1 >= minPlayers); } } }
public override void OnLobbyServerDisconnect(NetworkConnection conn) { for (int i = 0; i < lobbySlots.Length; ++i) { LobbyPlayer p = lobbySlots[i] as LobbyPlayer; if (p != null) { p.RpcUpdateRemoveButton(); p.ToggleJoinButton(numPlayers >= minPlayers); } } }
// ----------------- Server callbacks ------------------ //we want to disable the button JOIN if we don't have enough player //But OnLobbyClientConnect isn't called on hosting player. So we override the lobbyPlayer creation public override GameObject OnLobbyServerCreateLobbyPlayer(NetworkConnection conn, short playerControllerId) { GameObject obj = Instantiate(lobbyPlayerPrefab.gameObject) as GameObject; LobbyPlayer newPlayer = obj.GetComponent <LobbyPlayer>(); newPlayer.ToggleJoinButton(numPlayers + 1 >= minPlayers); for (int i = 0; i < lobbySlots.Length; ++i) { LobbyPlayer p = lobbySlots[i] as LobbyPlayer; if (p != null) { p.RpcUpdateRemoveButton(); p.ToggleJoinButton(numPlayers + 1 >= minPlayers); } } return(obj); }