Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Вы можете использовать сетьсистему Unity, которая позволяет играть в многопользовательские игры через компьютерную сеть. Подробнее
См. в Словарь
в WebGLAPI JavaScript, который отображает 2D- и 3D-графику в веб-браузере. Вариант сборки Unity WebGL позволяет Unity публиковать контент в виде программ JavaScript, использующих технологии HTML5 и API рендеринга WebGL для запуска контента Unity в веб-браузере. Подробнее
Посмотреть в Словарь
двумя способами:

При желании вы можете использовать WebSockets или WebRTC из JavaScript для реализации собственной сети. Обратите внимание, что вы не можете использовать сетевые классы .NET, поскольку код JavaScript не имеет прямого доступа к IP-сокетам для реализации сетевого подключения.

Эта страница содержит рекомендации по использованию сети в WebGL.

Использование класса UnityWebRequest в WebGL

Unity поддерживает класс UnityWebRequest в WebGL. Для реализации класса UnityWebRequest Unity использует JavaScript Fetch API, который использует браузер для обработки веб-запросов. Это накладывает ограничения безопасности на доступ к междоменным ресурсам.

Если вы отправляете веб-запрос на сервер, отличный от того, на котором размещен контент Unity, сервер, на который вы его отправляете, должен авторизовать контент Unity.

Для доступа к междоменным веб-ресурсам в WebGL сервер, к которому вы пытаетесь получить доступ, должен использовать обмен ресурсами между источниками (CORS) для авторизации междоменных веб-ресурсов.

Если вы пытаетесь получить доступ к содержимому с помощью UnityWebRequest, а на удаленном сервере не установлен или правильно настроен CORS, в консоли браузера появится сообщение об ошибке, подобное следующему:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://myserver.com/. This can be fixed by moving the resource to the same domain or enabling CORS.

Серверу необходимо добавить заголовки Access-Control к отправляемым HTTP-ответам, чтобы указать, какие веб-страницы имеют разрешение на чтение этой информации из веб-браузера.

Для демонстрации того, как добавить заголовки контроля доступа, которые позволяют Unity WebGL получать доступ к ресурсам на веб-сервере из любого источника, см. следующий пример. В этом примере используются общие заголовки запросов и разрешены методы GET, POST или OPTIONS:

"Access-Control-Allow-Credentials": "true", "Access-Control-Allow-Headers": "Accept, X-Access-Token, X-Application-Name, X-Request-Sent-Time", "Access-Control-Allow-Methods": "GET, POST, OPTIONS", "Access-Control-Allow-Origin": "*",

Загрузки UnityWebRequest

Не используйте код, который блокирует загрузку UnityWebReqest, например:

while(!www.isDone) {}

Вы не можете заблокировать поток, чтобы дождаться завершения загрузки UnityWebRequest, иначе ваше приложение зависнет. Поскольку WebGL является однопоточным, а API fetch в JavaScript является асинхронным, загрузка может не завершиться, пока вы не вернете управление браузеру. Вместо этого используйте сопрограмму и оператор yield, чтобы дождаться завершения загрузки. Для получения дополнительной информации см. примеры сопрограмм с использованием UnityWebRequest.

Использование мультиплеера Unity

Мультиплеер Unity обеспечивает связь по протоколу WebSockets. См. раздел NetworkServer.useWebSockets.

Использование WebSockets или WebRTC из JavaScript

WebGL не обеспечивает прямого доступа к IP-сокетам, но вы можете использовать WebSockets или WebRTC (два наиболее распространенных сетевых протокола, поддерживаемых браузерами), чтобы обойти эту проблему. Хотя WebSockets широко поддерживаются, WebRTC допускает одноранговые соединения между браузерами и ненадежные соединения. В Unity нет встроенного API, позволяющего использовать WebSockets или WebRTC, но вы можете использовать плагин JavaScript для реализации этого. Вы можете найти подключаемые модули, реализующие работу в сети WebSocket, в Unity Asset Store.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3