Network.Instantiate и Network.RemoveRPCs

Сеть в Unity3D

Network.Instantiate и Network.RemoveRPCs

Сообщение ladon 04 окт 2011, 21:29

Пытаюсь создать игроков через Network.Instantiate все хорошо, они двигаются.
В том же скрипте есть метод
Код: Выделить всё
   void OnPlayerDisconnected (NetworkPlayer player)
   {
      Debug.Log("Server destroying player");
      Network.RemoveRPCs(player,0);
      Network.DestroyPlayerObjects(player);
      DestroyPlayer(player);
   }


Который по идее должен зачищать все при дисконнекте игрока, что он успешно делает. Но при повторном коннекте игрока у
него почему то создается и предыдущий игрок. Пробовал Network.RemoveRPCs и с группой и без группы. Все равно предыдущий игрок появляется.
Что еще можно сделать что бы отключившиеся игроки все таки пропадали?
ladon
UNец
 
Сообщения: 31
Зарегистрирован: 09 авг 2011, 07:03

Re: Network.Instantiate и Network.RemoveRPCs

Сообщение gnoblin 04 окт 2011, 21:37

а что делает DestroyPlayer() ?
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Network.Instantiate и Network.RemoveRPCs

Сообщение ladon 04 окт 2011, 21:42

Вот так всегда, сначала надо полностью сформулировать вопрос что бы самостоятельно найти на него ответ.
Ответ прост - сервер авторитарный, т.е. он создает игроков и является их хозяином. Соответственно при дисконнекте игрока он получает игрока и не находит в объектах GameObject`ы у которых хозяин отключившийся игрок.
Ну и не удаляет ничего. Все rpc зачищаются, а вот объекты нет.

DestroyPlayer зачищает из серверного списка игроков того что отключился.
ladon
UNец
 
Сообщения: 31
Зарегистрирован: 09 авг 2011, 07:03


Вернуться в Сеть

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2