Extensions методы для Photon Cloud и Unity3D

Одно из самых популярных свойств в PhotonCloud является CustomProperties для игроков и комнат.

Обычно их используют вот так:

        PhotonNetwork.player.SetCustomProperties(new Hashtable
        {
            {"points", 0},
            {"name", Storage.PlayerName},
        });


Здесь есть много минусов:
1. Всегда нужна задавать новое имя для синхронизации(+1 переменная)
2. Дублировать код для получения и записи значения
3. Приведение типов…

Воспользуемся методами расширений. Пишем enum и сами методы:

//список свойств для каждого игрока, которые нужно синхронизировать по сети
public enum PlayerProperty
{
    Kills,
    Dies,
    Name,
    Skin,
    WeaponLeft,
}

//методы расширения для PhotonPlayer
public static class PhotonPlayerExtensions
{
    //установить значение
    public static void Set<T>(this PhotonPlayer player, PlayerProperty prop, T val)
    {
        var props = new Hashtable();
        props["p" + (int)prop] = val;
        player.SetCustomProperties(props);
    }
    //получить значение
    public static T Get<T>(this PhotonPlayer player, PlayerProperty prop)
    {
        object val;
        if (player.customProperties.TryGetValue("p" + (int)prop, out val))
        {
            return (T)val;
        }

        return default(T);
    }
}


Очень просто расширять, никогда не будет дублирования ключа и удобно. Кому надоедает делать приведение типов, можете добавить пару тех же методов установки и получения значения.

Пример где-то в коде игры:


var kills = photonView.owner.Get<int>(PlayerProperty.Kills);
kills++;
photonView.owner.Set(PlayerProperty.Kills, kills);


Я привел пример для игроков, но таким же образом можно добавить методы и для комнат.

Удачи!

Arena: The Choice (Global Game Jam 2015)



Недавно проходил Global Game Jam и наша команда сделала сетевую игру. Страница проекта globalgamejam.org/2015/games/arena-choice

Использовали Unity3D и Photon Cloud! Исходный код открыт, пользуйтесь наздоровье!

Исходный код: bitbucket.org/asosnovskiy/arenathechoice

ЗЫ Если долго весит надпись Connecting… значит нет второго игрока. Запустите еще одну вкладку с игрой. К сожалению бота не успели сделать:(

Создание онлайн игры на Photon Cloud и Unity3D - 2 часть



Всем привет! Прошло достаточно времени с момента записи первой части. И в данном видео хотел бы поделиться последними обновлениями + вы узнаете о новых компонентах PhotonAnimatorView, PhotonTransformView.

r0.02:
UPDATED: фотон клауд обновлен до 1.50.3
UPDATED: улучшена производительность
NEW: добавлены боты!
NEW: добавлены анимации для ботов, мобов и игроков
FIX: проход в замке закрыт)
FIX: теперь мобы поворачиваются

Ссылка на код: bitbucket.org/asosnovskiy/lumberjacksonline
Ссылка на игру: devby.ru/lo
VK: vk.com/lumberjacksonline

Крупное обновление Photon Cloud 1.50


Не так давно компания exitgames выпустила очередную версию своего продукта — Photon Cloud 1.50. В этой обновлении содержится ряд новых вещей, о которых я хочу рассказать вам. В дальнейшем будут уроки по их использованию.

Список изменений:

Обновлено: Минимальная версия юнити Unity 4.3.4. Связано с поддержкой 2D и Mecanim.

Добавлено: Поддержка Mecanim! Новый компонент «PhotonAnimatorView» который умеет синхронизировать состояния аниматора.

Добавлено: PhotonTransformView, PhotonRigidbodyView, PhotonRigidbody2DView. Каждый из этих компонентов имеет ряд настроек для сглаживания передвижения. Реализация открыта и можно смело изменять:)

Добавлено: Новые демо: Mecanim, RpgMovement и 2D Jump and Run.

Добавлено: Новая возможность: Ownership Transfer(передача прав владения(знаю, криво звучит, но смысл именно в этом:))).

Добавлено: PhotonView.RequestOwnership() и .TransferOwnership(). Для каждого PhotonView вы можете указать, может ли этим объектом управлять только создатель или можно менять владельца объекта. Устанавливается опция с помощью поля OwnershipOption в окне инспектора.

Добавлено: Интерфейсы IPunObservable и IPunCallbacks для более удобной реализации фотоновских событий(наконец-то!).

Добавлено: Класс Photon.PunBehaviour который реализует интерфейс IPunCallbacks.

Изменено: Компонент PhotonView теперь содержит список объектов для сетевых операций. Можно, к примеру, разделить сетевую логику на несколько скриптов и добавить их в один список.

Полный список на английском — тут

Сейчас вышло еще два обновления(1.50.1 и 1.50.2). Они несут в себе фиксы и несколько незначительных изменений + в версии 1.50.2 добавлена возможность посылать зашифрованный RPC(PhotonView.RpcSecure()).

В скором времени постараюсь записать уроки по новым возможностям. Следите за новостями!

Обзор плагинов для Unity3D 3 - Photon Cloud.



Третий обзор посвящен знаменитому плагину Photon Cloud(а точнее Photon Unity Networking). Если вам нужно добавить сетевое взаимодействие между игроками — этот плагин для вас. Легок в изучении, демократичные цены и гибкость масштабирования — малая часть того, за что любят этот плагин 61к+ разработчиков.

Photon Chat - создание чата на Photon Cloud


Недавно продукт компании «Exitgames» Photon Chat перешел в статус Public Beta, т.е. все желающие могут пощупать это. Давайте познакомимся с Photon Chat.

Что представляет собой Photon Chat?

Photon Chat — это обертка над Photon Cloud, которая позволяет организовать многоканальный чат в ваших приложениях.

Возможности:

-Сообщение можно передавать в виде текста или бинарных данных.

-Деление по каналам
-Приватные сообщения


-История сообщений
-Статусы друзей


Читать дальше →

Photon Cloud: создание онлайн игры - Урок 5(Unity3D + Php)

В пятом уроке связываем Unity3d с Php через WWW. И немного багфиксинга…



Предыдущий урок:
Photon Cloud: создание онлайн игры — Урок 4(Php)

Полезные материалы:
Photon Chat — создание чата на Photon Cloud

Unity3d — Интеграция с VK

Photon Cloud: создание онлайн игры - Урок 4(Php)

В четвертом уроке мы напишем сервер на Php для работы с базой данных MySQL.

В уроке:
-основы Php
-связь Php + MySQL
-логика для связи с клиентом



Следующий урок:
Photon Cloud: создание онлайн игры — Урок 5(Unity3D + Php)

Предыдущий урок:
Photon Cloud: создание онлайн игры — Урок 3(MySQL)

Photon Cloud: создание онлайн игры - Урок 3(MySQL)

Третий урок из серии «Создание онлайн игры» по Photon Cloud. В этом уроке мы научимся работать с MySQL.

план:
-openserver
-phpmyadmin
-структура MySQL
-SQL



Следующий урок:
Photon Cloud: создание онлайн игры — Урок 4(Php)

Предыдущий урок:
Photon Cloud: создание онлайн игры — Урок 2(Чат)