GameAction API
GameAction API
게임 한 판의 라이프사이클을 플랫폼에 알리기 위한 메서드 묶음입니다. 모든 호출은 fire-and-forget 으로 동작하며 응답 콜백이 없습니다.
TudadaSDK.Instance.gameAction 아래 3 개의 메서드를 제공합니다:
Start(payload?, additionalPayload?)— 한 판 시작Complete(payload, additionalPayload?)— 한 판 정상 클리어Exit(payload, additionalPayload?)— 한 판 비정상 종료
Start(payload?, additionalPayload?)
게임이 한 판을 시작했음을 알립니다. 인자는 모두 선택입니다.
파라미터:
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
payload | GameActionStartPayload | - | 라운드/스테이지/레벨 정보 |
additionalPayload | string | - | 자유 메타 데이터 |
GameActionStartPayload 필드:
| 필드 | 타입 | 설명 |
|---|---|---|
round | int | 라운드 번호 |
stage | int | 스테이지 번호 |
level | int | 레벨 번호 |
// 인자 없이 호출
TudadaSDK.Instance.gameAction.Start();
// stage 정보 포함
TudadaSDK.Instance.gameAction.Start(
payload: new GameActionStartPayload { stage = 3 }
);
Complete(payload, additionalPayload?)
게임이 한 판을 정상 클리어했음을 알립니다. result 와 playTime 은 필수입니다.
파라미터:
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
payload | GameActionCompletePayload | ✅ | 결과 정보 |
additionalPayload | string | - | 자유 메타 데이터 |
GameActionCompletePayload 필드:
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
result | string | ✅ | "WIN" / "LOSE" / "DRAW" / "DONE" (GameActionResult 상수 사용 권장) |
playTime | long | ✅ | 한 판 진행 시간 (ms) |
score | int | - | 획득 점수 |
round | int | - | 라운드 번호 |
stage | int | - | 스테이지 번호 |
level | int | - | 레벨 번호 |
TudadaSDK.Instance.gameAction.Complete(
payload: new GameActionCompletePayload {
result = GameActionResult.Win,
playTime = 12345,
score = 9000,
stage = 3,
}
);
Exit(payload, additionalPayload?)
게임이 한 판을 정상 완료하지 않고 종료했음을 알립니다. playTime 과 reason 은 필수입니다.
파라미터:
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
payload | GameActionExitPayload | ✅ | 종료 정보 |
additionalPayload | string | - | 자유 메타 데이터 |
GameActionExitPayload 필드:
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
playTime | long | ✅ | 한 판 진행 시간 (ms) |
reason | string | ✅ | "TIMEOUT" / "ABANDONED" (GameActionExitReason 상수 사용 권장) |
// 플레이어가 포기
TudadaSDK.Instance.gameAction.Exit(
payload: new GameActionExitPayload {
playTime = 4500,
reason = GameActionExitReason.Abandoned,
}
);
// 시간 초과
TudadaSDK.Instance.gameAction.Exit(
payload: new GameActionExitPayload {
playTime = 60000,
reason = GameActionExitReason.Timeout,
}
);
팁
Exit() 는 게임 코드가 한 판의 종료 시점을 명시적으로 판단해 호출해야 합니다. 페이지 unload(웹뷰 닫힘)와는 무관하게 동작합니다.