(Помогите!) Мультиплеер на Mirror Unity
| |
gasteros | Дата: Суббота, 03 Мая 2025, 18:05 | Сообщение # 1 |
уже был
Сейчас нет на сайте
| Добрый день, как уже указано в теме я создал игру в Unity используя Mirror и не могу запустить свою игру на двух разных устройствах и подключить друг к другу две игровые сессии. Я создавал игру по вот этим гайдам: https://rutube.ru/video/052c73de099db05345e8350679999dd4/. (Закончил вторую часть) И обнаружил, что игра у меня связывается только на компьютере(, если запускаю сразу две сессии). Но на разных устройствах сервера, созданные другим компьютером, просто невозможно увидеть.При этом сразу уточняю, что некоторые аспекты я чуть менял, поскольку пользовался я конечно более новыми версиями и Unity и Mirror. Я посмотрел информацию на счёт того, как это решить и толком не разобрался. Пожалуйста, помогите горе разработчику!!!
Сообщение отредактировал gasteros - Четверг, 08 Мая 2025, 06:38 |
|
| |
maker-rus | Дата: Пятница, 09 Мая 2025, 18:46 | Сообщение # 2 |
Гений
Сейчас нет на сайте
| Привет! Напиши пожалуйста конкретно, что ты сделал, чтобы подключить к своему "игровому серверу" другой пк? В видео происходит запуск только на одном устройстве.
|
|
| |
gasteros | Дата: Суббота, 10 Мая 2025, 15:49 | Сообщение # 3 |
уже был
Сейчас нет на сайте
| День добрый, условно говоря я ничего не делал. На месте Network adress у меня пока что стоит localhost. Хотя я знаю, что там будет стоять IP адрес сервера, на котором всё и происходит. Я просто не могу понять, как правильно настроить порты в KCP transport. Читаю документацию, как я понял требуется по нормальному настроить эти два параметра, чтоб у меня всё работало. А пока что у меня компьютер общается с сам собой.
Сообщение отредактировал gasteros - Суббота, 10 Мая 2025, 15:50 |
|
| |
maker-rus | Дата: Четверг, вчера, 00:10 | Сообщение # 4 |
Гений
Сейчас нет на сайте
| gasteros, прошу прощения, что долго отвечал, было много дел, которые нужно было решить. Смотри, такая вещь, как IP (протокол сетевой), достаточно универсальная, потому что стандартизирована и не зависит ни от каких фреймворков, библиотек, компонентов игрового движка. Есть два основных протокола (транспортных), которые работают поверх IP: TCP, UDP. Насколько я понял из документации KCP — всего лишь надстройка над UDP, так как он явно просит снять ограничения на обмен информации по сети на порту 7777 для UDP:
Цитата Unblock UDP (not TCP), Port 7777 (the default, unless you change it).
Из чего мы можем сделать вывод, что KCP transport — не что иное, как обычный UDP-протокол с «дополнительными оптимизациями». Соответственно, настройка для твоего плагина ничем не отличается от обычной настройки сетевого порта для взаимодействия в сети по UDP-протоколу.
Для того чтобы запущенное приложение на одном компьютере могло взаимодействовать с другим компьютером или иным устройством, поддерживающим сетевое взаимодействие, необходимо на устройстве, которое подключается к другому компьютеру (сетевому устройству): 0. запустить приложение на основном устройстве (сервер), которое осуществляет прием подключений; 1. на втором устройстве (клиент) указать верный IP-адрес устройства (сервера), к которому осуществляется подключение из п. 1, узнать его можно посредством:
Код // для Windows ipconfig
// для Linux ip a
2. указать корректный порт подключения, который указан в приложении на устройстве (сервере) из п. 1, в данном случае по умолчанию порт: 7777, если был задан другой порт — указать его; 3. проверить, что настройки firewall (Linux) или брандмауэра, антивируса (Windows) позволяют подключится по указанному порту к устройству (серверу) с другого устройства (клиента(ов)) в сети; 4. проверить, что настройки роутера, коммутатора позволяют отправлять пакеты между двумя этими устройствами, то есть они находятся в одной подсети или настроена маршрутизация между подсетями, или подключение происходит по (статическому) белому IP, который выделил интернет-провайдер.
Проверить наличие сетевого взаимодействия и видимость устройств в сети между собой можно проверить посредством отправления ICMP (PING) запроса:
Код // Windows и большинство дистрибутивов Linux ping IP_адрес_сервера
|
|
| |
|