Как сделать загрузку игровых сцен (photon)?

Как сделать загрузку игровых сцен (photon)?

Сообщение valera0141 14 мар 2017, 18:18

Привет форумчане. Задался вопросом. Предположим, имеется 3 пользователя. Первый в меню нажимает создать и выбирает сцену(карту), создаётся комната и загружается выбранная сцена. Другие два пользователя в меню нажимают присоединиться. Но вот как сделать, чтоб у подключившихся пользователей загрузилась та же сцена, что и у главного игрока? То есть тот же метод, что и в counter-strike/half-life. Пока что в меню сцене висит ui кнопка 'Создать игру', при нажатии вызывается скрипт.

Синтаксис:
Используется csharp
public void CreateRoom()
    {
        RoomOptions roomOptions = new RoomOptions();
        roomOptions.IsVisible = false;
        roomOptions.MaxPlayers = 4;

        PhotonNetwork.CreateRoom(roomName.text, roomOptions, TypedLobby.Default);

        Debug.Log( "Количество игроков в комнате " + PhotonNetwork.playerList.Length.ToString());

        DontDestroyOnLoad(gameObject);
        PhotonNetwork.LoadLevel(1);
    }
 
valera0141
UNец
 
Сообщения: 26
Зарегистрирован: 04 май 2014, 21:14

Re: Как сделать загрузку игровых сцен (photon)?

Сообщение Aleksey 14 мар 2017, 19:47

Синтаксис:
Используется csharp
PhotonNetwork.CreateRoom("NameRoom", new RoomOptions() { MaxPlayers = 4, CustomRoomProperties = new Hashtable() { { "scene", int(сцену которую выбрал) } } }, null);

ну а дальше в кулбэке онджойнедрум открывай это свойство комнаты допустим и открывай сцену индекс которой достал из этого свойства комнаты

не мешай все в кучу и не добавляй лишнюю сетевую логику чтобы не путаться) это плохая привычка для начинающего сетевого программиста))
я про фотоннетворк.лоад лвл. Грубо говоря эта строчка нужна только тогда ,когда игроки открывают сцену все вместе одновременно. А у тебя из описания я вижу что один создает загружает сцену потом присоединяется другой и загружает и т.д. Тут не нужно через фотоннетворк загружать сцены. Обычный юнити сцене менеджер класс подойдет.
Продукты на тему онлайна в Ассет Сторе
_https://www.assetstore.unity3d.com/en/# ... sher:21589
Аватара пользователя
Aleksey
UNIт
 
Сообщения: 56
Зарегистрирован: 17 фев 2015, 16:09

Re: Как сделать загрузку игровых сцен (photon)?

Сообщение Woolf 14 мар 2017, 21:21

в кулбэке онджойнедрум

=)) (полная Ж)
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Аватара пользователя
Woolf
Адепт
 
Сообщения: 6219
Зарегистрирован: 02 мар 2009, 16:59

Re: Как сделать загрузку игровых сцен (photon)?

Сообщение valera0141 15 мар 2017, 11:23

Aleksey писал(а):
Синтаксис:
Используется csharp
PhotonNetwork.CreateRoom("NameRoom", new RoomOptions() { MaxPlayers = 4, CustomRoomProperties = new Hashtable() { { "scene", int(сцену которую выбрал) } } }, null);


Ругается Cannot implicitly convert type `System.Collections.Hashtable' to `ExitGames.Client.Photon.Hashtable'. Что то не пойму. Вот как выглядит строчка
Синтаксис:
Используется csharp
PhotonNetwork.CreateRoom("NameRoom", new RoomOptions() { MaxPlayers = 4, CustomRoomProperties = new Hashtable() { { 1, "scene" } } }, null);
valera0141
UNец
 
Сообщения: 26
Зарегистрирован: 04 май 2014, 21:14

Re: Как сделать загрузку игровых сцен (photon)?

Сообщение Aleksey 15 мар 2017, 12:02

выше нейма класса скрипта надо подключить пространство имен - using Hashtable = ExitGames.Client.Photon.Hashtable;
Продукты на тему онлайна в Ассет Сторе
_https://www.assetstore.unity3d.com/en/# ... sher:21589
Аватара пользователя
Aleksey
UNIт
 
Сообщения: 56
Зарегистрирован: 17 фев 2015, 16:09

Re: Как сделать загрузку игровых сцен (photon)?

Сообщение valera0141 19 мар 2017, 20:28

Aleksey писал(а):выше нейма класса скрипта надо подключить пространство имен - using Hashtable = ExitGames.Client.Photon.Hashtable;

Спасибо
valera0141
UNец
 
Сообщения: 26
Зарегистрирован: 04 май 2014, 21:14


Вернуться в Photon

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

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