Я пишу многопользовательскую игру, в которой несколько клиентов на своем телефоне должны иметь возможность подключаться к серверу на базе P C. У меня все тестирование редактора сработало, и клиент редактора подключился нормально, теперь я встроил проект клиента в свой телефон, и ничего не происходит, когда я нажимаю, чтобы присоединиться к серверу.
Метод создания сервера:
public void StartServer()
{
DontDestroyOnLoad(gameObject);
Debug.Log("Started");
IPAddress[] localIPs = Dns.GetHostAddresses(Dns.GetHostName());
Debug.Log(Dns.GetHostName());
foreach (IPAddress addr in localIPs)
{
if (addr.AddressFamily == AddressFamily.InterNetwork)
{
ip = addr;
}
}
var config = new NetPeerConfiguration("TEC") { Port = 7777, LocalAddress = ip } ;
config.EnableMessageType(NetIncomingMessageType.ConnectionApproval);
server = new NetServer(config);
server.Start();
Debug.Log("Server Started");
createButton.gameObject.SetActive(false);
serverInfoGroup.SetActive(true);
ipSlot.gameObject.SetActive(true);
playerTextSlotsGroup.SetActive(true);
foreach (var playerSlot in playerTextSlots)
{
playerSlot.gameObject.SetActive(false);
}
ipSlot.text = Convert.ToString(ip);
Метод присоединения клиента:
public void JoinServer()
{
string ip = ipBox.text;
userName = userBox.text;
var config = new NetPeerConfiguration("TEC");
Debug.Log("Connecting with " + ip + " and " + userName);
client = new NetClient(config);
client.RegisterReceivedCallback(new SendOrPostCallback(GotMessage));
client.Start();
NetOutgoingMessage approval = client.CreateMessage();
approval.Write("dunno");
client.Connect(ip, 7777, approval);
attemptedConnection = true;
Debug.Log("Server joined");
}
JoinServer должен вызываться, когда клиент нажимает кнопку ввода, в двух полях ввода Я ввожу IP и логин. Я использовал IPv4-адрес своего компьютера, полученный из метода создания сервера, к которому редактор может присоединиться, но сборка моего телефона - нет.
Я сейчас протестировал программу на эмуляторе android, но происходит то же самое, нет реакции на кнопку подключения к серверу.