// 誰かが切断した private bool OnDisconnectOtherPlayer(OtherPlayerDisconnectedEvent e) { if (m_IsGameSet) { return(false); } if (m_IsOnNetworkError) { return(false); } if (RoomManager.IsHost == false) { return(false); } if (RoomManager.NumPlayers > 1) { return(false); } // 自分以外誰も居ないならゲーム終了 m_GameUIManager.OnNetworkError("Disconected Other Players"); StartCoroutine(DelayFinishGame(m_FinishGameOffsetTime)); m_IsOnNetworkError = true; return(false); }
// ルーム内の誰かが退室したとき public void OnOtherPlayerDisconnected(MonobitEngine.MonobitPlayer otherPlayer) { NetworkEvent e = new OtherPlayerDisconnectedEvent { m_OtherPlayer = otherPlayer }; NotifyObservers(e); }
// 誰かが切断した public bool OnDisconnectedOtherPlayer(OtherPlayerDisconnectedEvent e) { // 管理対象のプレイヤーか if (m_PlayerIDToPlayer.ContainsKey(e.m_OtherPlayer.ID) == false) { return(false); } // ゲーム終了時の切断か if (GameManager.IsGameSet) { return(false); } // 切断されたプレイヤーは管理下から除外 var disconnectedPlayer = m_PlayerIDToPlayer[e.m_OtherPlayer.ID]; m_Players.Remove(disconnectedPlayer); m_SurvivingPlayers.Remove(disconnectedPlayer); --m_NumSurvivingPlayers; return(false); }
// 誰かが切断した private bool OnDisconnectedOtherPlayer(OtherPlayerDisconnectedEvent e) { UpdateSurvivingPlayersTextUI(); return(false); }