다음에 추가할 기능
그룹
선택한 프로젝트의 길드, 클랜, 팀을 역할과 함께 관리합니다.
Unity

확인할 수 있는 결과
시간 초과나 충돌 시 원래 작업을 보존하고 현재 상태를 확인하세요. 새 리비전으로 자동 재시도하지 마세요.
이 단계의 동영상은 아직 없습니다. 안내와 MCP 요청은 바로 사용할 수 있습니다.
그룹
같은 프로젝트 준비
게임 설정과 같은 프로젝트를 대시보드에서 선택하세요.
그룹 →첫 요청에는 추가 정의가 필요하지 않습니다. 일치하는 게임 데이터가 없으면 빈 결과도 정상입니다.
그룹은 게임 안에서 생성하고 관리합니다.
첫 예제는 데이터를 읽습니다. 그룹, 매치, 오브젝트를 생성하지 않습니다. 빈 목록도 정상적인 첫 응답입니다.
이 기능 구현하기
가이드는 미리 볼 수 있습니다. 실행하려면 활성 프로젝트 키가 필요합니다. 프로젝트 준비
SDK 설치와 프로젝트 설정 가져오기가 완료되고 플레이어가 로그인해야 합니다.
이 SDK 예제는 develop을 사용합니다. 필요한 API가 설치된 SDK에 있는지 확인하세요.
빠른 시작으로 원하는 플레이어를 연결하세요. 명시적인 버튼이나 씬 동작에서 ReadMyGroups()을 호출하세요. 파일을 여는 것만으로는 요청을 보내지 않습니다.
C#
1using UnityEngine;
2using PM.horizOn.Cloud.Manager;
3
4public sealed class GroupsDemo : MonoBehaviour
5{
6 // Initialize/connect once and restore the existing player in the Quickstart first.
7 // Invoke from a player action; no background refresh or membership mutation.
8 public async void ReadMyGroups()
9 {
10 var user = UserManager.Instance.CurrentUser;
11 if (user == null || !user.IsValid()) return;
12 var result = await GroupsManager.Instance.GetGroups(user.UserId);
13 if (!result.IsSuccess) { Debug.LogWarning(result.ErrorCode); return; }
14 Debug.Log($"Player revision: {result.Data.revision}");
15 foreach (var group in result.Data.groups)
16 Debug.Log($"Group {group.id}: {group.myRole}, revision {group.revision}");
17 // result.Data.limits contains all current limits; existing groups may exceed them.
18 // GetMembers(userId, groupId, afterUserId: null, limit: 1) reads one page.
19 // Keep its revision and nextAfterUserId. A changed revision requires a restart.
20 // Pending createdAt may be absent/null; it does not mean the Unix epoch.
21 }
22}
23// For writes use the SDK GroupsExample and its durable GroupsSampleStore.
24// Preserve the exact project/player, body, expected revision and pending requestId.
25// Unknown create: read/reconcile explicitly; never create with a replacement revision.
새 기능을 테스트하세요.
시간 초과나 충돌 시 원래 작업을 보존하고 현재 상태를 확인하세요. 새 리비전으로 자동 재시도하지 마세요.
게임 설정과 같은 프로젝트를 대시보드에서 선택하세요.
엔드포인트
- GET
/groups - GET
/groups/{groupId} - GET
/groups/{groupId}/members - GET
/groups/{groupId}/pending - POST
/groups - PUT
/groups/{groupId} - POST
/groups/{groupId}/join - POST
/groups/{groupId}/request - POST
/groups/{groupId}/invite - POST
/groups/{groupId}/accept-invite - POST
/groups/{groupId}/decline-invite - POST
/groups/{groupId}/cancel-invite - POST
/groups/{groupId}/accept-request - POST
/groups/{groupId}/decline-request - POST
/groups/{groupId}/cancel-request - POST
/groups/{groupId}/leave - POST
/groups/{groupId}/remove - POST
/groups/{groupId}/role - POST
/groups/{groupId}/transfer - POST
/groups/{groupId}/delete


