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); });
                }
            });
        }
예제 #4
0
        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;
            }
        }
예제 #5
0
    string nextscene;   //ロードした場合のシーン名

    // Start is called before the first frame update
    void Start()
    {
        newGameSetting = GetComponent <NewGameSetting>();
    }