Unity SDK
MAJACLOUD의 주력 SDK입니다. async/await 및 코루틴 API, 설정 창, Starter 샘플을 갖춘 Unity용 C# SDK입니다.
코드 주석과 API 이름은 SDK와 일치하도록 영어로 유지합니다.
요구 사항#
- Unity 6을 포함한 Unity 2021.3 LTS 이상. SDK에는 렌더링 코드가 없으므로 Built-in, URP, HDRP 모두에서 작동합니다.
- Unity 기본 제공 모듈(UnityWebRequest, JSON, uGUI)만 사용합니다. 샘플은 TextMesh Pro를 사용합니다.
- 에디터, Windows, macOS, Linux, Android, iOS, WebGL. 스레드를 사용하지 않으므로 WebGL에서도 async/await를 안전하게 쓸 수 있습니다. IL2CPP에서도 안전합니다.
설치#
- 프로젝트 페이지나 다운로드 페이지에서
.unitypackage를 다운로드합니다. - Unity에서 Assets ▸ Import Package ▸ Custom Package…를 선택하고, 파일을 고른 뒤 전체를 임포트합니다.
- 샘플용 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_…)를 게임 빌드나 웹 페이지에 절대 넣지 마세요. 플레이어에게 배포된 것은 무엇이든 읽힐 수 있습니다.코드로 구성하기#
런타임에 설정을 만들 수도 있습니다. 예를 들어 개발 빌드가 스테이징 서버를 가리키도록 할 때 사용합니다:
// 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)에는 콜백을 받는 코루틴 버전이 있어, async/await를 사용하지 않는 코드에서도 쓸 수 있습니다.
// 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이 있습니다. UI에 배치하고 인스펙터에서 슬러그나 보상 키를 설정하세요.
WebGL과 모바일#
- WebGL 빌드는 HTTPS로 제공하세요. 브라우저는
https://페이지에서 보내는http://요청을 차단합니다. API는 WebGL에 필요한 CORS 헤더를 이미 보냅니다. - 브라우저는 클릭으로만 새 탭을 엽니다. WebGL에서 계정을 연결할 때는 플로우를 먼저 시작해 두고 버튼 핸들러 안에서 여세요(플레이어 참고).
- 내 컴퓨터의 서버를 대상으로 휴대폰에서 테스트할 때도 HTTPS가 필요합니다(개발용으로만, 서버에
ALLOW_INSECURE_HTTP를 설정하고 Player Settings에서 HTTP 다운로드를 허용하는 방법도 있습니다).
에디터 메뉴#
| 메뉴 항목 | 기능 |
|---|---|
Tools ▸ Majacloud ▸ Setup | 키, 연결 테스트, 동작 설정. |
Tools ▸ Majacloud ▸ Open Starter Sample | Starter 씬을 엽니다. |
Tools ▸ Majacloud ▸ Rebuild Starter Sample | Starter 씬과 프리팹을 다시 생성합니다. |
Tools ▸ Majacloud ▸ Export .unitypackage | SDK를 .unitypackage로 내보냅니다. |