Unity 5 UNET Chat Example Пример чата

Решил я попробовать написать что-нибудь на низком уровне, так называемом low-level UNET. Попытался смастерить на NetworkConnection-ах сервер и клиент, но не тут-то было… Клиент не отправляет данные и все тут. Начал копать глубже и оказалось, что канал сообщений не отправляется(флешится), т.к. метод этот internal и все тут. Пришлось искать что-то другое. И так я пришел к NetworkServer и NetworkClient.

Первый реализует логику сервера — прослушивает порт и обрабатывает события подключения, отключения, получения данных и их рассылку.

Второй класс — клиент. Подключаемся к серверу, работаем с ним, отключаемся.

В целом, выглядит все хорошо. Чат получилось сделать:)

Unity 5 UNET Урок 2: Синхронизация позиции

Во втором уроке по UNet рассмотрим синхронизацию позиции.

Для синхронизации данных используются переменные с атрибутом SyncVar. Такие переменные можно изменять только на сервере, и изменения рассылаются всем клиентам.

Поэтому, чтобы игрок как отправить изменения позиции на сервер, мы используем команды.

Команды — это методы, которые вызываются на стороне клиента, но исполняются на стороне сервера. Чтобы объявить команду нужно добавить префикс Cmd в названии и атрибут Command. Параметром может быть сколь угодно.

Кроме SyncVar можно использовать сообщения. О них мы поговорит в будущих уроках.

Unity3D UNET Урок 1 Подготавливаем проект

Первый урок(не считая вводный конечно) посвящен базовой настройке проекта. Все начинается с того, что нужно добавить стандартный ассет Characters, из которого возьмем в дальнейшем FpsController. Но ближе к телу сети…

Общая концепция UNET такая — есть сервер, а есть клиенты.


Сервером может быть как выделенная машина, так и обычный игрок. Во втором случае его называет хостом(host) — т.е. клиент+сервер.

Остальные игроки присоединяются к серверу и передают все данные через него. Это главное отличие от старой сети, где игроки обменивались данными напрямую.

Читать дальше →

Unity3D UNet Урок 0 Введение

Всем привет! Наконец-то дошли руки записать уроки по UNET. Вообще, сеть хорошая, но пока сырая. Однако знакомиться нужно уже сейчас. Дальше будет много вкусных плюшек от юнитястов, так что нужно подготовиться и заучить азы сети.

Коротко в уроке:
  • Где найти материал
  • Какая версия Unity3D подходит для UNET

Первый урок тут

Подробнее о сетевом протоколе передачи данных в Unity3D

Примечание от автора:
Вольный перевод статьи с блога

О том, что такое UNET можно прочесть здесь. В этой статье рассмотрим протокол передачи данных в UNET.

Когда мы начали проектировать новую сетевую библиотеку для Unity, мы хотели понять, какой она должна быть в идеале. Мы разделили наших пользователей на две группы:

1. Пользователи, которые хотят получить инструмент для настройки сети, требующий минимум усилий и затрат для настройки (в идеале, без усилий вообще).

2. Пользователи, которые работают с сетевыми играми и желающие иметь мощный и гибкий инструмент.

Основываясь на этих группах, мы разделили нашу сетевую библиотеку на две различные части: HLAPI (high-level(высокоуровневый) API) и LLAPI (low-level(низкоуровневый) API).

Читать дальше →