Подключение к Photon Cloud

Добавлен , опубликован
Я долго думал о чём можно написать статью, бороздил просторы интернета и почти не нашёл русских статей по созданию мультиплеера в unity3d по средства Photon Unity Network.
В данной статье мы сделаем подключение к photon и я расскажу о комнатах, лобби, и о самом Photon cloud. И так, приступим.
Что же такое Photon cloud? На этот вопрос я постараюсь дать вам краткий, но понятный ответ.
Photon cloud – связка вашего пк с сервером, на котором будет запущена ваша игра. Это своеобразный хостинг для вашей многопользовательской игры, но он менее затратный. Вы сами сможете выбирать настройки для вашего сервера и добавлять характеристик, думаю, на этом вопросе не надо зацикливаться, так что сразу перейдём дальше.
Лобби.
Лобби хранит в себе номера комнат на главном сервере. Photon unity network автоматически присоединяется к этому лобби и получает список комнат, позже уже присоединяется к ним. Лобби не обязательно иметь, можно подключиться к случайной комнате или к конкретной комнате, если вы знаете её номер.
Комната.
Комната – место, где собираются игроки, она имеет характеристики (например, вы можете выставить ограничение игроков, её номер и прочее). Весь список комнат с их номерами находится в лобби, и вы можете подключаться к конкретной комнате непосредственно из лобби. Но можно и подключиться к случайной комнате, тут решать вам.

Подключение к фотону.

Сперва нам нужно подключиться к фотону, для этого мы используем функцию PhotonNetwork.ConnectUsingSettings() ,которая позволит нам подключиться к фотону и указать версию нашей игры.
Теперь создаём новый скрипт, называем его любым удобным вам именем, я назову его “Connect”. Содержимое скрипта будет выглядеть так:
void Start()
{
    PhotonNetwork.ConnectUsingSettings("1.0 TestGame");
}
Впрочем, тут нет ничего сложно, что нужно объяснять тут мы просто подключаемся к фотону, и задаём версию нашей игры, в моём случае это: "1.0 TestGame".
Далее, для удобности мы будем выводить весь процесс в GUI. Для этого в этом же скрипте вызовем метод OnGUI() и выведем через него процесс нашего подключения.
void OnGUI()
{
    GUILayout.Label(PhotonNetwork.connectionStateDetailed.ToString());
}
Далее мы проверяем - подключились ли мы к лобби, если да, то мы подключаемся к случайной комнате. Код будет выглядеть следующим образом:
void OnJoinedLobby()
{
    Debug.Log("OnJoinedLobby");
    PhotonNetwork.JoinRandomRoom();
}
Метод OnJoinedLobby() вызывается после того, как мы подключились к лобби. Мы сразу выводим в лог, что мы подключились к лобби, это для удобности. Во второй строчке мы заходим в случайную комнату из списка комнат фотона, но комнат может и не быть вообще, тогда мы должны будем её создать. Для этого используем метод OnPhotonRandomJoinFailed(), он будет срабатывать если мы не зашли в случайную комнату, далее в самом методе мы выводим в лог то, что мы не смогли зайти в комнату и создаём комнату. Код будет выглядеть так:
void OnPhotonRandomJoinFailed()
{
    Debug.Log("OnJoinRandomFailed") ;
    PhotonNetwork.CreateRoom("Room1",true,true,20) ;
}
Теперь немного подробнее о создании комнаты. Первый параметр – уникальное имя комнаты, второй – видима или невидима комната, третий – закрыта или открыта комната, четвёртый – максимальное количество игроков.
Теперь мы создали комнату, нам нужно проверить : подключились ли мы к ней, для этого есть метод OnJoinedRoom() и мы выведем в лог, что мы удачно вошли в комнату, на этом первая статья подойдёт к концу, во второй я расскажу об установке игрока на сцену и сделаем ему базовое управление.
Скрин скрипта, который должен у вас в итоге получиться:
Спасибо за внимание.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Этот комментарий удален
27
Увы, автор статьи исчез, не закончив публикацию.
По задумке автора здесь должен был быть цикл уроков, однако учитывая факт его отсутствия я позволил себе отредактировать текст статьи до более самостоятельного вида.
38
Увы, фотон отсосал после выхода юнити нетворкинг =\
Чтобы оставить комментарий, пожалуйста, войдите на сайт.