Быстрый старт
От нуля до первого запроса примерно за пять минут.
Комментарии в коде и имена API оставлены на английском, чтобы совпадать с SDK.
1. Создайте проект#
- Создайте аккаунт и войдите в панель управления.
- Создайте проект, оставив включённым параметр Добавить контент примера Starter. Он создаёт таблицу лидеров
coins, наградуdaily_coinsи несколько ключей конфигурации, которые используются в этой документации. - Откройте API-ключи: там находятся базовый URL, ID проекта и клиентский ключ (
pk_live_…).
2. Установите SDK#
- Скачайте Unity SDK на странице проекта и импортируйте его через Assets ▸ Import Package ▸ Custom Package…
- Откройте Tools ▸ Majacloud ▸ Setup, вставьте базовый URL, ID проекта и клиентский ключ, затем нажмите Test connection.
- Необязательно: откройте Tools ▸ Majacloud ▸ Open Starter Sample и нажмите Play, чтобы опробовать все сервисы.
- Скачайте Godot SDK и распакуйте его в проект, чтобы появилась папка
addons/majacloud. - Включите Majacloud в Project ▸ Project Settings ▸ Plugins. Плагин добавит автозагрузку
Majacloud. - Заполните Project Settings ▸ Majacloud, затем выполните Project ▸ Tools ▸ Majacloud: Test connection.
- Добавьте на страницу тег script, приведённый ниже (или скопируйте
majacloud.jsв свой проект). - Создайте клиент с базовым URL, ID проекта и клиентским ключом. Страница должна открываться по HTTPS (во время разработки подойдёт localhost).
<script src="https://majacloud.majanite.com/downloads/majacloud-web-1.0.0.js"></script>
<script type="module">
const mc = Majacloud.createClient({ baseUrl: 'https://majacloud.majanite.com', projectId: '<project id>', clientKey: 'pk_live_…' });
</script>Подойдёт любой HTTP-клиент. Передавайте X-Project-ID и X-Client-Key в каждом запросе, а для вызовов от имени игрока — ещё и Authorization: Bearer <access_token>.
3. Выполните вход и вызовите сервис#
Вставьте этот код в игру. Он выполняет вход игрока как гостя, отправляет результат и читает значение конфигурации.
using MajacloudSdk;
using UnityEngine;
public class GameStart : MonoBehaviour
{
private async void Start()
{
// Restores the saved session or creates a guest
var signIn = await Majacloud.Auth.SignInAnonymouslyAsync();
if (!signIn.Ok)
{
Debug.LogWarning(signIn.Error.Message);
return;
}
Debug.Log("Hello " + signIn.Value.DisplayName);
await Majacloud.Leaderboards.SubmitScoreAsync("coins", 120);
int damage = Majacloud.RemoteConfig.GetInt("enemy_damage", 25);
}
}extends Node
func _ready() -> void:
# Restores the saved session or creates a guest
var signed_in := await Majacloud.auth.sign_in_anonymously()
if not signed_in.ok:
push_warning(signed_in.message)
return
print("Hello ", signed_in.value.display_name)
await Majacloud.leaderboards.submit_score("coins", 120)
var damage := Majacloud.remote_config.get_int("enemy_damage", 25)const mc = Majacloud.createClient({
baseUrl: 'https://majacloud.majanite.com',
projectId: '<project id>',
clientKey: 'pk_live_…',
});
// Restores the saved session or creates a guest
const signIn = await mc.auth.signInAnonymously();
if (!signIn.ok) throw new Error(signIn.error.message);
console.log('Hello ' + signIn.value.display_name);
await mc.leaderboards.submitScore('coins', 120);
await mc.remoteConfig.fetch();
const damage = mc.remoteConfig.getInt('enemy_damage', 25);export PROJECT_ID="<project id>" CLIENT_KEY="pk_live_…"
# Create a guest; keep access_token and refresh_token from the response
curl -X POST https://majacloud.majanite.com/v1/auth/guest -H "X-Project-ID: $PROJECT_ID" -H "X-Client-Key: $CLIENT_KEY" \
-H "Content-Type: application/json" -d '{}'
export TOKEN="<access_token>"
curl -X POST https://majacloud.majanite.com/v1/leaderboards/coins/scores -H "X-Project-ID: $PROJECT_ID" -H "X-Client-Key: $CLIENT_KEY" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" -d '{"score": 120}'4. Проверьте панель управления#
Откройте проект в панели управления: карточка Начало работы переключится в состояние Подключено, а каждый запрос появится в разделе Логи со статусом, задержкой и ID запроса.
Что дальше#
- Игроки и вход: отображаемые имена и привязка гостей к email или Google.
- Таблицы лидеров: сбросы, периоды и защита от читов.
- Удалённая конфигурация: значения на лету с проверкой подписи.
- Облачные сохранения и награды.