Войти
UnityФорумСеть

Стартовые параметры игрока по логину

#0
19:03, 19 мая 2017

Суть такова:
Нужно передать логин и пароль на сервер, затем на основании этих данных получать стартовые параметры игрока и заспавнить объект Player.

Однако как организовать это взаимодействие, если оно происходит не в рамках NetworkBehavior? Тут ведь не получится использовать подход с атрибутами [Command] и [ClientRpc].

Была идея сделать так чтобы при подключении спавнилась сущность, в которой как раз бы и происходила передача пароля через [Command], а затем бы уже спавнился реальный объёкт Player.
Но это какой-то изврат? Или нет?


#1
22:28, 19 мая 2017

NetworkMessages, есть в API Unity.

#2
22:45, 19 мая 2017

Да, спасибо, уже разобрался. Теперь в другом проблема.
При получении сообщения на сервере  networkConnection.conn.Disconnect(); не работает. Я ожидаю что клиент будет отключен от сервера, но этого не происходит.

#3
0:33, 20 мая 2017

3da
Вы отключаете клиента с заспавненными объектами или просто подключившегося и передавшего NetworkMessage?

#4
5:09, 20 мая 2017

Red_Baron_
> Вы отключаете клиента с заспавненными объектами или просто подключившегося и
> передавшего NetworkMessage?
А в чём разница?

#5
8:46, 20 мая 2017

3da
Просто у меня проблемы с дисконнектом бывали в основном с заспавненными игроками. А как выражается то, что дисконнекта не происходит? На клиенте не отключается? Чему равен параметр disconnectTimeout?

#6
15:40, 20 мая 2017

Red_Baron_
> А как выражается то, что дисконнекта не происходит? На клиенте не отключается?
Да, на сервере есть команда Disconnect, но оно никак не влияет ни на что... Игрок продолжает быть на сцене и им можно управлять.

Попробовал использовать NetworkServer.DestroyPlayersForConnection(conn);
Но не помогло, так как Player уничтожается, а соединение всё ещё висит.

Red_Baron_
> Чему равен параметр disconnectTimeout?
Это по дефолту

#7
19:23, 20 мая 2017

Похоже что оно работает, просто не работает в режиме Host. Я ожидал что локальное соединение будет обработано, но нет. Сейчас проверил коннект между двумя разными клиентами - вроде работает.

#8
0:55, 22 мая 2017

3da
В режиме хоста  - возможно, не проверял.  Между чистым сервером и чистым клиентом тоже все должно корректно работать, только отключаться может не сразу а через disconnectTimeout.

UnityФорумСеть

Тема в архиве.