
아이템
아이템을 한 번 정의하고 플레이어별 인벤토리를 관리하세요.
SDK 및 REST
Unity, Godot, Unreal과 통합하거나 REST 인터페이스를 사용하세요.
프로젝트 대시보드
프로젝트에서 각 기능을 설정하고 현재 데이터를 관리하세요.
빠른 통합
아이템
동영상 준비 중
선택한 프로젝트의 고유 장비, 속성, 카탈로그 규칙과 플레이어 인벤토리를 관리합니다.
using UnityEngine;
using PM.horizOn.Cloud.Manager;
public sealed class ItemsDemo : MonoBehaviour
{
// Initialize/connect and restore the existing player in the Quickstart first.
public async void ReadInventory()
{
var user = UserManager.Instance.CurrentUser;
if (user == null || !user.IsValid()) return;
var result = await ItemsManager.Instance.GetInventory(user.UserId);
if (!result.IsSuccess) { Debug.LogWarning(result.ErrorCode); return; }
foreach (var item in result.Data.instances)
Debug.Log($"{item.instanceId}: {item.itemKey}");
// Keep result.Data.revision for a separately reviewed mutation.
}
// Wire a separate explicit action; no automatic catalog traversal or poll.
public async void ReadCatalogPage()
{
var user = UserManager.Instance.CurrentUser;
if (user == null || !user.IsValid()) return;
var result = await ItemsManager.Instance.GetCatalog(user.UserId, limit: 1);
if (!result.IsSuccess) { Debug.LogWarning(result.ErrorCode); return; }
Debug.Log($"Catalog revision: {result.Data.revision}");
// Explicit Next keeps result.Data.revision and nextAfterKey unchanged.
}
}
// SDK ItemsExample/ItemsSampleStore persist original instanceId/body/revision before writes.
// Keep the original Player Values operationId for purchase recovery.
// The initial success may include item references; retained replay may return empty applied/items.
// Read the current inventory separately. Never reconstruct earlier item references.
// A failed refresh never authorizes a replacement purchase or a local item grant.이 SDK 예제는 develop을 사용합니다. 필요한 API가 설치된 SDK에 있는지 확인하세요. 퀵스타트 보기
