Кооператив(Клиент и сервер на одном PC)

Сеть в Unity3D

Кооператив(Клиент и сервер на одном PC)

Сообщение Hare 20 фев 2018, 13:05

Всем привет.
Я пытаюсь сделать кооператив в своей игре. С помощью MasterServer, и Unity 2017.3.
Так вот мне необходимо понять как создать игрока со стороны сервера и клиента. Вот код который я использую для поднятия сервера:

Синтаксис:
Используется csharp
        Network.InitializeServer(int.Parse(countPlayerGame.text), int.Parse(portGame.text), !Network.HavePublicAddress());
        MasterServer.RegisterHost(gameTypeName, nameGame.text, commentGame.text);
        SetupServer(int.Parse(portGame.text));

    // Create a server and listen on a port
    public void SetupServer(int port)
    {
        NetworkServer.Listen(port);
        isAtStartup = false;

        NetworkServer.RegisterHandler(MsgType.Connect, OnConnected);
        NetworkServer.RegisterHandler(MsgType.Disconnect, OnDisconnected);
        NetworkServer.RegisterHandler(MsgType.Error, OnError);

        SceneManager.LoadSceneAsync(scene);
    }
 

вот код который я использую со стороны клиента для подключения:

Синтаксис:
Используется csharp
public void ConnectClient(int i)
        {
                ErrorLog ("Connected to " + hostData [i].gameName, TypeText.Info);

                if (!ErrorLogInt (hostData[i].connectedPlayers, hostData[i].playerLimit, "Мак. число игроков"))
                        return;

                if (hostData [i].passwordProtected) {
                        passwordPanel.SetActive (true);
                        passwordPanel.transform.GetChild (2).GetComponent<Button> ().onClick.AddListener (() => Connect (i));
                        return;
                }
        Network.Connect(hostData[i]);
        string ip = "localHost";
        for (int z = 0; z < hostData[i].ip.Length; z++)
        {
            if (hostData[i].ip[z] != "")
            {
                ip = hostData[i].ip[z];
            }
        }
        SetupClient(ip, hostData[i].port);
    }

        public void Connect(int i)
        {
                string password = Network.incomingPassword;
                if (password == passwordPanel.transform.GetChild (1).GetComponent<InputField> ().text) {
                        Network.Connect (hostData [i]);
                } else {
                        ErrorLog ("Пароль не верен!", TypeText.Error);
                }
        }

  // Create a client and connect to the server port
    public void SetupClient(string ip = "127.0.0.1", int port = 4444)
    {

        //ClientScene.RegisterPrefab(playerPrefs);
        myClient = new NetworkClient();
        myClient.RegisterHandler(MsgType.Connect, OnConnected);
       
        myClient.Connect(ip, port);
     
        isAtStartup = false;
        myClient.RegisterHandler(MsgType.Connect, OnConnected);
        myClient.RegisterHandler(MsgType.Disconnect, OnDisconnected);
        myClient.RegisterHandler(MsgType.Error, OnError);

        SceneManager.LoadSceneAsync(scene);
    }
 


Так же со стороны сервера видно что подключены два клиента, узнаю я об это с помощью данного кода:

Синтаксис:
Используется csharp
        GUILayout.Label("Player ping values");
        int i = 0;
        while (i < Network.connections.Length)
        {
            GUILayout.Label("Player " + Network.connections[i] + " - (Ping) " + Network.GetLastPing(Network.connections[i]) + " ms");
            i++;
        }


При подключении клиентов к серверу, со стороны сервера создается игрок. Но он не двигается.
Так же если подключить еще один клиент к серверу, то опять на сервере появляется еще один игрок но со стороны клиентов виден только свой игрок но не игрок второго клиента.
Сначало я хотел использовать НетворкМанагер но при попытки подключиться с другова компьютера он не видет сервер.
Мне надо что бы Игрок был и сервером и клиентом одновременно и уже к ниму подключались клиенты.
Но я не могу добится желаемого результата. Извените за мой английский.
Вот еще Screenshots:
Сервер:
Скрытый текст:
Изображение
Изображение

Клиент:
Скрытый текст:
Изображение
Изображение
Hare
UNец
 
Сообщения: 10
Зарегистрирован: 26 окт 2016, 11:18

Вернуться в Сеть

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3