게임 아이디어와 기능

다음에 추가할 기능

업적

각 키는 플레이어마다 한 번만 해제됩니다. 수동 규칙은 게임을 신뢰하고 통계 임계값은 관련 보고와 같은 트랜잭션에서 평가됩니다.

SDK: develop 브랜치플레이어 세션 필요
Unity
업적 일러스트
확인할 수 있는 결과

동작 후 같은 플레이어의 first_steps가 해제됩니다. 같은 키를 반복해도 두 번째 업적이나 보상은 없습니다.

동영상 준비 중

이 단계의 동영상은 아직 없습니다. 안내와 MCP 요청은 바로 사용할 수 있습니다.

업적

같은 프로젝트 준비

  1. 게임 설정과 같은 프로젝트를 대시보드에서 선택하세요.

    업적 →
  2. 대시보드 양식에서 다음 테스트 항목을 만들거나 기존 항목을 사용하세요. 표시된 값은 현재 프로젝트 데이터가 아닌 예시입니다.

    키
    first_steps
    이름
    First steps
    잠금 해제 규칙
    manual
    활성
    true
    해제 전 숨김
    false
    보상 없음
    []

    각 키는 플레이어마다 한 번만 해제됩니다. 수동 규칙은 게임을 신뢰하고 통계 임계값은 관련 보고와 같은 트랜잭션에서 평가됩니다.

  3. 예제를 실행하기 전에 저장하고 다시 불러와 확인하세요. 관련 없는 정의는 유지하세요.

이 기능 구현하기

가이드는 미리 볼 수 있습니다. 실행하려면 활성 프로젝트 키가 필요합니다. 프로젝트 준비

SDK 설치와 프로젝트 설정 가져오기가 완료되고 플레이어가 로그인해야 합니다.

이 SDK 예제는 develop을 사용합니다. 필요한 API가 설치된 SDK에 있는지 확인하세요.

빠른 시작으로 원하는 플레이어를 연결하세요. 명시적인 버튼이나 씬 동작에서 RunReviewedAction()을 호출하세요. 파일을 여는 것만으로는 요청을 보내지 않습니다.

C#
Assets/Scripts/AchievementsDemo.cs
horizOn 호출
1using System.Linq;
2using UnityEngine;
3using PM.horizOn.Cloud.Core;
4using PM.horizOn.Cloud.Manager;
5​
6// Existing SDK/project configuration and authenticated player session required.
7// Call RunReviewedAction explicitly after reviewing this example and its data.
8// 보상은 해제와 동시에 지급됩니다. 지급에 실패하면 전체 작업이 취소됩니다.
9// This explicit action unlocks the shown configured achievement key.
10public sealed class AchievementsDemo : MonoBehaviour
11{
12 public async void RunReviewedAction()
13 {
14 var sessionUser = UserManager.Instance.CurrentUser;
15 if (sessionUser == null || !sessionUser.IsValid()) return;
16 var userId = UserManager.Instance.CurrentUser.UserId;
17 var manager = AchievementsManager.Instance;
18 var loaded = await manager.GetAchievements(userId);
19 if (!loaded.IsSuccess) { Debug.LogWarning(loaded.ErrorCode); return; }
20 foreach (var progress in loaded.Data.progress)
21 Debug.Log(progress.key + ": " + progress.rewardState);
22​
23 // Configure a manual first_steps definition, then call this on the matching game action.
24 var unlocked = await manager.Unlock(userId, "first_steps");
25 if (!unlocked.IsSuccess) { Debug.LogWarning(unlocked.ErrorCode); return; }
26 // Repeat the same key after timeout; never create a replacement reward identity.
27 // rewardState is complete, unlockedAt is null, and deliveryResults is empty.
28 // Values were credited atomically. Read PlayerValues again when showing the balance.
29 // No Inbox claim or local value addition. Refresh achievements after statistics updates.
30 }
31}
전체 SDK 예제 열기 ↗

새 기능을 테스트하세요.

동작 후 같은 플레이어의 first_steps가 해제됩니다. 같은 키를 반복해도 두 번째 업적이나 보상은 없습니다.

게임 설정과 같은 프로젝트를 대시보드에서 선택하세요.

엔드포인트
  • GET/achievements
  • POST/achievements/unlock
  • POST/achievements/rewards/deliver
API 레퍼런스의 모든 엔드포인트
다음 단계에 대한 추천

모든 라운드에 최고 점수를 더하세요.

라운드가 끝나면 점수를 저장하고 선두를 보여주세요. 기존 연결과 플레이어 세션을 계속 사용하세요.