2015-07-16 2 views
0

У меня есть одна большая проблема с PUN, и это то, что PhotonNetwork.Instantiate создает объекты для каждой комнаты, а не для каждой сцены. У меня сейчас есть один «сервер», мастер-клиент, а затем все остальные присоединяются к одной комнате. Это связано с тем, что мне нужно отправлять вызовы RPC на сервер до игрового процесса, для целей входа и создания персонажа.Photon Unity Networking Нежелательная кросс-сценаментация

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

Любая помощь была бы принята с благодарностью.

+0

Наличие одной комнаты на сцену - удобный способ обработки сцен с помощью PUN. Почему вы не можете отключить комнату «вестибюль» и соединить «игру», когда сцены сменяются? – photonians

ответ

0

Вызовите PhotonNetwork.Необходимо, когда все пользователи присутствуют в игровой сцене.

Перед началом игры проверьте, все ли игроки успешно загрузили сцену игры. Если подтверждение получено от каждого игрока, чем вызов PhotonNetwork.Instantiate и начать игру.

+0

Единственная проблема заключается в том, что игровая сцена должна иметь динамическое количество игроков. Я не могу дождаться, когда все присоединятся, прежде чем вызывать PhotonNetwork.Instantiate, потому что я хочу, чтобы люди могли присоединиться в любое время во время игры. – Var14ble

+0

Если это случай, просто просто сохраните объект, когда загружена любая сцена и не разрешите ее уничтожать при загрузке. Используйте DontDestroyOnLoad для Gameobject http://docs.unity3d.com/ScriptReference/Object.DontDestroyOnLoad.html –