PUN. Запуск сцены когда комната полная

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

PUN. Запуск сцены когда комната полная

Сообщение ColdWind 07 апр 2021, 13:24

Делаю мультиплеер на PUN. Не могу понять когда и где мне корректно вызывать проверку на заполненность комнаты, которая при успехе отправляла бы всех игроков на другую сцену.
Грубо говоря хочу сделать что-то типо матчмейкинга из той же доты или кс (но только без кнопки реди) (нужное кол-во игроков собралось - все отправились на карту).
если запихивать в OnJoinedRoom() или в Update() проверку в духе
Синтаксис:
Используется csharp
if (PhotonNetwork.IsConnected && PhotonNetwork.InRoom && PhotonNetwork.PlayerList.Length == maxPlayers)
   {
      PhotonNetwork.LoadLevel("mapname");
   }

Будет грузить только одного игрока в не до конца прогруженную карту а второй останется в меню.

-------------------
Решено, проблема произошла из за того что в апдейте постоянно пыталось перегрузить уровень.
Синтаксис:
Используется csharp
void Update()
{
    if ( PhotonNetwork.IsConnected && PhotonNetwork.InRoom && PhotonNetwork.PlayerList.Length == maxPlayers && PhotonNetwork.IsMasterClient && !gameIsStarted)
    {
        //загрузка
        gameIsStarted = true;
    }
}
Последний раз редактировалось ColdWind 08 апр 2021, 09:33, всего редактировалось 2 раз(а).
ColdWind
UNец
 
Сообщения: 3
Зарегистрирован: 07 апр 2021, 12:56

Re: PUN. Запуск сцены когда комната полная

Сообщение krauser0993 07 апр 2021, 14:49

В GameManager пропиши булевые значения игроков.
Добавь игрокам кнопку готов, когда нажимает меняй булевую на true
Если количество булевых переменных = макс. игроков то запускай катку)
krauser0993
UNITрон
 
Сообщения: 342
Зарегистрирован: 05 апр 2019, 15:17

Re: PUN. Запуск сцены когда комната полная

Сообщение Jarico 07 апр 2021, 14:51

Ну так в OnJoinedRoom проверку сделай, если количество игроков равно MaxPlayers то отправляй всем команду что игра начинается и сцена загружается. Тут даже без апдейтов можно обойтись
Github: _https://github.com/redheadgektor
Discord: Конь! Чаю!#9382 (сижу редко)
YouTube: _https://www.youtube.com/channel/UCPQ04Xpbbw2uGc1gsZtO3HQ
Telegram: _https://t.me/redheadgektor
Аватара пользователя
Jarico
Адепт
 
Сообщения: 1084
Зарегистрирован: 06 янв 2019, 17:37
Откуда: 0xDEAD
Skype: none
  • Сайт

Re: PUN. Запуск сцены когда комната полная

Сообщение ColdWind 07 апр 2021, 15:05

Jarico писал(а):Ну так в OnJoinedRoom проверку сделай, если количество игроков равно MaxPlayers то отправляй всем команду что игра начинается и сцена загружается. Тут даже без апдейтов можно обойтись

не работает, один клиент грузит на половину, второй в меню. прям как с апдейтом.
ColdWind
UNец
 
Сообщения: 3
Зарегистрирован: 07 апр 2021, 12:56

Re: PUN. Запуск сцены когда комната полная

Сообщение Alkos26Rus 07 апр 2021, 15:40

ColdWind писал(а):
Jarico писал(а):Ну так в OnJoinedRoom проверку сделай, если количество игроков равно MaxPlayers то отправляй всем команду что игра начинается и сцена загружается. Тут даже без апдейтов можно обойтись

не работает, один клиент грузит на половину, второй в меню. прям как с апдейтом.

Что значит грузит наполовину, если все игроки в сборе, то мастер клиент отправляет команду всем на переход сцены, там уже все рано или поздно подключатся, в чем проблема
Аватара пользователя
Alkos26Rus
Адепт
 
Сообщения: 1640
Зарегистрирован: 26 ноя 2020, 17:52
Откуда: Москва

Re: PUN. Запуск сцены когда комната полная

Сообщение ColdWind 08 апр 2021, 09:22

Alkos26Rus писал(а):
ColdWind писал(а):
Jarico писал(а):Ну так в OnJoinedRoom проверку сделай, если количество игроков равно MaxPlayers то отправляй всем команду что игра начинается и сцена загружается. Тут даже без апдейтов можно обойтись

не работает, один клиент грузит на половину, второй в меню. прям как с апдейтом.

Что значит грузит наполовину, если все игроки в сборе, то мастер клиент отправляет команду всем на переход сцены, там уже все рано или поздно подключатся, в чем проблема

игроку - не подгружает игровые объекты которые спавнятся через скрипт в геймменеджере на старте. Хосту даже префаб не создает и не переносит на сцену.
Выдает ошибку "PUN cancels an ongoing async level load, as another scene should be loaded. Next scene to load"
ColdWind
UNец
 
Сообщения: 3
Зарегистрирован: 07 апр 2021, 12:56

Re: PUN. Запуск сцены когда комната полная

Сообщение Alkos26Rus 08 апр 2021, 10:54

ColdWind писал(а):
Alkos26Rus писал(а):
ColdWind писал(а):
Jarico писал(а):Ну так в OnJoinedRoom проверку сделай, если количество игроков равно MaxPlayers то отправляй всем команду что игра начинается и сцена загружается. Тут даже без апдейтов можно обойтись

не работает, один клиент грузит на половину, второй в меню. прям как с апдейтом.

Что значит грузит наполовину, если все игроки в сборе, то мастер клиент отправляет команду всем на переход сцены, там уже все рано или поздно подключатся, в чем проблема

игроку - не подгружает игровые объекты которые спавнятся через скрипт в геймменеджере на старте. Хосту даже префаб не создает и не переносит на сцену.
Выдает ошибку "PUN cancels an ongoing async level load, as another scene should be loaded. Next scene to load"

Похоже ты пытаешся загрузить сцену, когда сцена еще не загружена, не знаю может у тебя несколько команд срабатывают.
В фотоне есть такой параметр
Синтаксис:
Используется csharp
PhotonNetwork.AutosyncScene = true;

По идее он должен загружать ту сцену клиентам которая у мастерклиента, тобишь ты тупо меняешь сцену у мастера а клиенты должны сами подключится
Аватара пользователя
Alkos26Rus
Адепт
 
Сообщения: 1640
Зарегистрирован: 26 ноя 2020, 17:52
Откуда: Москва


Вернуться в Почемучка

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 26