Создание сети Photon Unity Нежелательное межсценовое создание

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

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

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


person Var14ble    schedule 16.07.2015    source источник
comment
Наличие одной комнаты на сцену - удобный способ обработки сцен с помощью PUN. Почему вы не можете отключить холл и подключить первую игру, когда сцены меняются?   -  person photonians    schedule 31.07.2015


Ответы (1)


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

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

person Zohaib Javed    schedule 16.07.2015
comment
Единственная проблема заключается в том, что на игровой сцене должно быть динамическое количество игроков. Я не могу дождаться, пока все присоединятся, прежде чем позвонить в PhotonNetwork.Instantiate, потому что я хочу, чтобы люди могли присоединиться в любое время во время игры. - person Var14ble; 23.07.2015
comment
Если это так, просто сохраните объект при загрузке любой сцены и не позволяйте ему разрушаться при загрузке. Используйте DontDestroyOnLoad для игрового объекта docs.unity3d.com/ScriptReference/Object.DontDestroyOnLoad. > - person Zohaib Javed; 24.07.2015