public void EnterGame(NewGameSetting newGameSetting, Action onGameJoined) { if (m_onGameJoined != null) { return; } NewGameSettingData _newGameSettingData = new NewGameSettingData(newGameSetting.GetGameTypeString(), newGameSetting.GetActorString()); string jsonString = JsonWriter.Serialize(_newGameSettingData); m_onGameJoined = onGameJoined; Send(jsonString); }
private NewGameSetting CreateNewGameSetting() { NewGameSetting _gameSetting = ScriptableObject.CreateInstance <NewGameSetting>(); m_gameType = (GameType)m_gameTypeDropdown.value; m_playerNumber = (PlayerNumber)m_playerNumberDropdown.value; m_playAs = (PlayAs)m_playAsDropdown.value; if (m_gameType == GameType.PVE) { _gameSetting.gameType = NewGameSetting.GameType.PvE; } else { _gameSetting.gameType = NewGameSetting.GameType.PvP; } if (m_playerNumber == PlayerNumber._1V1) { _gameSetting.totalActorNumber = NewGameSetting.ActorNumber._1v1; } else { _gameSetting.totalActorNumber = NewGameSetting.ActorNumber._2v2; } switch (m_playAs) { case PlayAs.Shooter: { _gameSetting.startAs = ActorFilter.ActorType.Shooter; break; } case PlayAs.Zombie: { _gameSetting.startAs = ActorFilter.ActorType.Zombie; break; } } _gameSetting.normalActorNumber = 50; return(_gameSetting); }
public void Button_StartGame() { HideAll(); NewGameSetting _newGameSetting = CreateNewGameSetting(); Engine.Instance.LoadScene("Test", delegate { if (NetworkManager.IsOffline) { Engine.GameManager.InitGame(_newGameSetting); } else { Engine.NetworkManager.EnterGame(_newGameSetting, delegate { Engine.GameManager.InitGame(_newGameSetting); }); } }); }
public void InitGame(NewGameSetting newGameSetting) { if (m_gameState != GameState.None) { return; } Debug.Log("init game, newGameSetting.gameType=" + newGameSetting.gameType + ", newGameSetting.startAs=" + newGameSetting.startAs); Debug.Log("NetworkManager.IsOffline=" + NetworkManager.IsOffline + ", PhotonNetwork.isMasterClient=" + PhotonNetwork.isMasterClient); if (NetworkManager.IsOffline || (!NetworkManager.IsOffline && PhotonNetwork.isMasterClient)) { for (int i = 0; i < GameSetting.SceneObjectNumber; i++) { int _id = UnityEngine.Random.Range(0, m_objectPrefabManager.Length); Engine.Instance.CreateObject(_id, null, Engine.GetRamdomPosition(), m_objectPrefabManager.GetPrefab(_id).transform.eulerAngles); } } m_currentNewGameSetting = newGameSetting; CreatePlayerActor(); if (NetworkManager.IsOffline || (!NetworkManager.IsOffline && PhotonNetwork.isMasterClient)) { m_otherAIObjectInstanceID = new List <int>(); int _needActorNumber = m_currentNewGameSetting.totalActorNumber == NewGameSetting.ActorNumber._1v1 ? 1 : 2; m_gameStartCondition = new MainGameStartCondition(_needActorNumber, _needActorNumber, m_currentNewGameSetting.normalActorNumber); m_gameState = GameState.Initing; CreateNormal(m_currentNewGameSetting.normalActorNumber); CreateOtherAI(); } else { m_gameState = GameState.AppandingToMasterClient; } }
string nextscene; //ロードした場合のシーン名 // Start is called before the first frame update void Start() { newGameSetting = GetComponent <NewGameSetting>(); }