Unity SDK

Основной SDK MAJACLOUD: C# для Unity с API на async/await и корутинах, окном настройки и примером Starter.

Комментарии в коде и имена API оставлены на английском, чтобы совпадать с SDK.

На этой странице

Требования#

  • Unity 2021.3 LTS или новее, включая Unity 6. Подходят встроенный конвейер рендеринга, URP и HDRP: в SDK нет кода рендеринга.
  • Только встроенные модули Unity (UnityWebRequest, JSON, uGUI). В примере используется TextMesh Pro.
  • Редактор, Windows, macOS, Linux, Android, iOS и WebGL. Потоки не используются, поэтому async/await безопасен в WebGL. Совместим с IL2CPP.

Установка#

  1. Скачайте .unitypackage на странице проекта или на странице загрузок.
  2. В Unity: Assets ▸ Import Package ▸ Custom Package…, выберите файл и импортируйте всё.
  3. Когда Unity предложит импортировать TMP Essentials для примера, согласитесь.

Всё находится в Assets/Majacloud: Runtime (сам SDK), Editor (инструменты настройки), Samples/Starter и Tests.

Подключение проекта#

Tools ▸ Majacloud ▸ Setup (также доступно в Project Settings ▸ Majacloud) записывает Assets/Resources/MajacloudSettings.asset. SDK инициализируется из этого файла до загрузки первой сцены.

ПолеЗначение
Base URLАдрес этой установки. https://majacloud.majanite.com
Project IDПанель управления ▸ API-ключи.
Client KeyПубличный ключ, начинающийся с pk_live_. Его можно включать в сборки.

Test connection сохраняет название проекта, тариф и публичный ключ удалённой конфигурации, который закрепляет проверку подписи за вашим сервером.

Никогда не добавляйте секретный ключ (sk_live_…) в сборку игры или на веб-страницу. Всё, что попадает к игрокам, можно прочитать.

Настройка из кода#

Создавайте настройки во время выполнения — например, чтобы направить dev-сборки на тестовый сервер:

C#
// Switch environments from code (e.g. a staging server in development builds)
var settings = ScriptableObject.CreateInstance<MajacloudSettings>();
settings.Configure("https://staging.yourstudio.com", "<project id>", "pk_live_…");
Majacloud.Initialize(settings);

Async и корутины#

У каждого асинхронного метода (…Async) есть парный вариант для корутин, принимающий колбэк, — для кода без async/await.

C#
// Every async method has a coroutine version with a callback
StartCoroutine(Majacloud.Leaderboards.GetTop("coins", 10, result =>
{
    if (result.Ok) Debug.Log(result.Value.Total + " players");
}));

Пример Starter#

В Samples/Starter/Scenes/MajacloudStarter.unity пять вкладок: Leaderboard, Cloud save, Rewards, Config и Account. Сцене нужен контент, который создаёт параметр Добавить контент примера Starter.

Готовые префабы в Samples/Starter/Prefabs: MajacloudLeaderboardView, MajacloudPlayerBadge и MajacloudDailyRewardButton. Добавьте их в свой интерфейс и укажите в инспекторе слаг или ключ награды.

WebGL и мобильные платформы#

  • Отдавайте сборки WebGL по HTTPS: браузеры блокируют запросы http:// со страниц https://. API уже отправляет заголовки CORS, которые нужны WebGL.
  • Браузеры открывают новые вкладки только по клику. Для привязки аккаунта в WebGL сначала запустите процесс, а затем откройте страницу в обработчике нажатия кнопки (см. Игроки).
  • Для тестов на телефоне с сервером на вашем компьютере тоже нужен HTTPS (или, только для разработки, ALLOW_INSECURE_HTTP на сервере и разрешённые HTTP-загрузки в Player Settings).
Пункт менюЧто делает
Tools ▸ Majacloud ▸ SetupКлючи, проверка подключения и настройки поведения.
Tools ▸ Majacloud ▸ Open Starter SampleОткрывает сцену Starter.
Tools ▸ Majacloud ▸ Rebuild Starter SampleЗаново генерирует сцену Starter и префабы.
Tools ▸ Majacloud ▸ Export .unitypackageЭкспортирует SDK в .unitypackage.

Поиск по названиям страниц, заголовкам и тексту.

↑↓ навигация ↵ открыть Esc закрыть