Продолжить создание после ухода главного клиента

#unity3d #photon

#unity3d #photon

Вопрос:

Я пытаюсь создать игру Tower Defense, используя Unity и Photon. Обычно я нахожу ответы в Интернете, но ничего не нашел для этой ситуации:

У меня есть скрипт spawn manager, который порождает врагов и увеличивает spawnIndex (это делает только главный клиент). Поскольку главный клиент обрабатывает spawnIndex , как только главный клиент покидает игру, другой игрок вступает во владение и spawnIndex возвращается к 0 .

Я попробовал реализацию singleton, но безуспешно. Мне нужен способ для главного клиента поддерживать переменную и, если они покинут игру, передать эту переменную новому главному клиенту, продолжая с того места, где она была прервана.

Ответ №1:

Спасибо, что выбрали Photon!

spawnIndex Должно быть пользовательским свойством room, а не частным полем.

Вы можете прочитать о «Миграции хоста и главном клиенте» в целом здесь.

Также предпочтительнее устанавливать spawnIndex с помощью «Compare-And-Set» (или «Check-And-Swap») только путем передачи старого значения в качестве expectedProperties параметра в PhotonNetwork.CurrentRoom.SetCustomPropreties .

Комментарии:

1. Спасибо за ответ JohnTube, есть обратный отсчет до появления, он выглядит как 5,4,3,2,1 и появляется. Должен ли я синхронизировать обратный отсчет? Таким образом, клиент может вступить во владение, когда главный уходит.

2. Вы также можете синхронизировать обратный отсчет да. Вы также можете использовать пользовательское свойство room для этого. Используйте значение обратного отсчета.