Пример #1
0
        IEnumerator Start()
        {
            if (!Mirror.NetworkManager.isHeadless)
            {
                yield break;
            }

            for (int i = 0; i < this.numFramesToWait; i++)
            {
                yield return(null);
            }

            ushort portNum = (ushort)NetManager.defaultListenPortNumber;

            CmdLineUtils.GetUshortArgument("portNum", ref portNum);

            string sceneName = "Main";

            CmdLineUtils.GetArgument("scene", ref sceneName);

            ushort maxNumPlayers = (ushort)NetManager.maxNumPlayers;

            CmdLineUtils.GetUshortArgument("maxNumPlayers", ref maxNumPlayers);

            string serverIp = "127.0.0.1";

            CmdLineUtils.GetArgument("serverIp", ref serverIp);

            string gameModeName = null;

            CmdLineUtils.GetArgument("gameMode", ref gameModeName);
            if (!string.IsNullOrWhiteSpace(gameModeName))
            {
                var gameModeInfo = GameModeManager.Instance.GameModes.FirstOrDefault(gm => gm.Name == gameModeName);
                if (gameModeInfo != null)
                {
                    GameModeManager.Instance.SelectGameMode(gameModeInfo);
                }
                else
                {
                    Debug.LogError($"Game mode with name '{gameModeName}' not found");
                }
            }

            if (CmdLineUtils.HasArgument("startServer"))
            {
                Debug.LogFormat("Starting server in headless mode, params: {0}, {1}, {2}", portNum, sceneName, maxNumPlayers);
                NetManager.StartServer(portNum, sceneName, maxNumPlayers, true, false);
            }
            else if (CmdLineUtils.HasArgument("startClient"))
            {
                Debug.LogFormat("Starting client in headless mode, params: {0}, {1}", serverIp, portNum);
                NetManager.StartClient(serverIp, portNum);
            }
        }
Пример #2
0
        IEnumerator Start()
        {
            if (!Mirror.NetworkManager.isHeadless)
            {
                yield break;
            }

            for (int i = 0; i < this.numFramesToWait; i++)
            {
                yield return(null);
            }

            ushort portNum = (ushort)NetManager.defaultListenPortNumber;

            CmdLineUtils.GetUshortArgument("portNum", ref portNum);

            string sceneName = "Main";

            CmdLineUtils.GetArgument("scene", ref sceneName);

            ushort maxNumPlayers = (ushort)NetManager.maxNumPlayers;

            CmdLineUtils.GetUshortArgument("maxNumPlayers", ref maxNumPlayers);

            string serverIp = "127.0.0.1";

            CmdLineUtils.GetArgument("serverIp", ref serverIp);

            if (CmdLineUtils.HasArgument("startServer"))
            {
                Debug.LogFormat("Starting server in headless mode, params: {0}, {1}, {2}", portNum, sceneName, maxNumPlayers);
                NetManager.StartServer(portNum, sceneName, maxNumPlayers, true, false);
            }
            else if (CmdLineUtils.HasArgument("startClient"))
            {
                Debug.LogFormat("Starting client in headless mode, params: {0}, {1}", serverIp, portNum);
                NetManager.StartClient(serverIp, portNum);
            }
        }