Не видит сервер в локальной сети (UNet)

Сеть в Unity3D

Не видит сервер в локальной сети (UNet)

Сообщение Rachok 08 июн 2017, 08:13

Всем приве1 Решил познакомиться с ЮНет, написать что-нибудь простое для начала. Написал чатик.
1. Создал PlayerPrefab (пустышка-префаб), на нем висит Network Identity (Local Player Author... стоит true) и мой скрипт For Player (класс наследуется о NetworkBehaviour):
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;

public class ForPlayer : NetworkBehaviour {

    // Use this for initialization
    ScriptSend scriptSend;
    void Start()
    {
        scriptSend = GameObject.Find("GOforScriptSend").GetComponent<ScriptSend>();
        if (isLocalPlayer)
        {
            scriptSend.thisPlayer = this.GetComponent<ForPlayer>();
        }

    }
    public void Send(string message)
    {
        CmdSend1(Network.player.guid, message);
    }


    [Command]
    public void CmdSend1(string id, string message)
    {
        Debug.Log("send = "+message);
        RpcSend1(id, message);
    }

        [ClientRpc]
    public void RpcSend1(string id, string message)
    {
        scriptSend.text1.text += System.Environment.NewLine + id+": "+ message;
    }
        // Update is called once per frame
        void Update () {
               
        }
}
 

2. На сцене есть GOforScriptSend (путышка), на котором висит мой скрипт
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;

public class ScriptSend : MonoBehaviour {

    public InputField input1;
    public Text text1;

    public ForPlayer thisPlayer;

    // Use this for initialization
    void Start ()
    {
               
        }

    public void Send()
    {
        thisPlayer.Send(input1.text);
    }

        // Update is called once per frame
        void Update ()
    {
               
        }
}

3. На сцене находится NetWorkObject (тоже пустышка), у которого присутствует компонент Network Manager... В Online и Offline Scene стоит моя единственная сцена, а в Network address я поставил IP 192.168.0.2 Auto Create Player = true, Player Prefab - Player1Prefab. Так же висит компонент Network manager HUD, show runtime gui = true.

Все работает, если создать сервер на машине с IP 192.168.0.2.
1. Вопрос, как увидеть все сервера в локальной сети? Обзванивать весь диапазон 192.168.х.х (где х от 0 до 255)?
2. Как обойтись без компонента Network Manager HUD? Понимаю, что это по-обезьяньи, сначала налепить, а потом думать что чем управляет, но... Какими функциями Network Managera он управляет? Например, какие его функции вызывать, чтобы создать сервер и какие, чтобы подключиться?
Rachok
UNIт
 
Сообщения: 126
Зарегистрирован: 19 авг 2016, 09:07

Re: Не видит сервер в локальной сети (UNet)

Сообщение Rachok 09 июн 2017, 10:19

Со вторым разодрался...
https://habrahabr.ru/post/211202/
А с первым... В локальной сети всегда айпишники начинаются с 192.186? Я не уверен=)
Rachok
UNIт
 
Сообщения: 126
Зарегистрирован: 19 авг 2016, 09:07

Re: Не видит сервер в локальной сети (UNet)

Сообщение Happy Lime 16 июл 2017, 15:59

Посылать широковещательный UDP запрос с сервера внутри локальной сети И повесить слушателя на клиенте, использовав конкретный порт.
Как это сделать - не знаю. Задал этот вопрос тут:

viewtopic.php?f=14&t=44088
Аватара пользователя
Happy Lime
UNец
 
Сообщения: 39
Зарегистрирован: 16 июл 2017, 11:27


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

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

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