빠른 시작
처음부터 첫 요청까지 약 5분이면 됩니다.
코드 주석과 API 이름은 SDK와 일치하도록 영어로 유지합니다.
1. 프로젝트 만들기#
- 계정을 만들고 대시보드에 로그인합니다.
- 프로젝트를 만들 때 Starter 샘플 콘텐츠 추가를 켠 상태로 두세요. 이 문서 전반에서 사용하는
coins리더보드,daily_coins보상, 몇 가지 구성 키가 생성됩니다. - API 키를 열어 Base URL, 프로젝트 ID, 클라이언트 키(
pk_live_…)를 확인합니다.
2. SDK 설치#
- 프로젝트 페이지에서 Unity SDK를 다운로드하고 Assets ▸ Import Package ▸ Custom Package…로 임포트합니다.
- Tools ▸ Majacloud ▸ Setup을 열고 Base URL, 프로젝트 ID, 클라이언트 키를 붙여넣은 다음 Test connection을 누릅니다.
- 선택 사항: Tools ▸ Majacloud ▸ Open Starter Sample 메뉴를 실행하고 Play를 눌러 모든 서비스를 사용해 봅니다.
- Godot SDK를 다운로드하고 프로젝트에 압축을 풀어
addons/majacloud폴더가 생기도록 합니다. - Project ▸ Project Settings ▸ Plugins에서 Majacloud를 활성화합니다. 그러면
Majacloud오토로드가 추가됩니다. - Project Settings ▸ Majacloud에 값을 입력한 다음 Project ▸ Tools ▸ Majacloud: Test connection을 실행합니다.
- 아래 script 태그를 페이지에 추가합니다(또는
majacloud.js를 프로젝트에 복사합니다). - Base 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와 함께 로그에 표시됩니다.