
친구
요청과 친구 목록으로 플레이어를 연결하세요.
SDK 및 REST
Unity, Godot, Unreal과 통합하거나 REST 인터페이스를 사용하세요.
프로젝트 대시보드
프로젝트에서 각 기능을 설정하고 현재 데이터를 관리하세요.
빠른 통합
친구
동영상 준비 중
선택한 프로젝트의 친구, 요청 및 차단입니다.
using UnityEngine;
using PM.horizOn.Cloud.Manager;
var userId = UserManager.Instance.CurrentUser.UserId;
var manager = FriendsManager.Instance;
var loaded = await manager.GetFriends(userId);
if (!loaded.IsSuccess) { Debug.LogWarning(loaded.ErrorCode); return; }
Debug.Log(loaded.Data.friendCode); // Public identifier, not a credential.
foreach (var friend in loaded.Data.friends)
Debug.Log(friend.display.name + ": " + (friend.lastActiveAt ?? "unknown"));
// Invoke only after the player explicitly reviews this snapshot and chooses an action.
async System.Threading.Tasks.Task ApplyReviewed(string action, string targetUserId,
long expectedRevision, string requestId = null)
{
var result = action switch {
"request" => await manager.SendRequest(userId, targetUserId, expectedRevision),
"accept" => await manager.AcceptRequest(userId, targetUserId, expectedRevision, requestId),
"decline" => await manager.DeclineRequest(userId, targetUserId, expectedRevision, requestId),
"cancel" => await manager.CancelRequest(userId, targetUserId, expectedRevision, requestId),
"remove" => await manager.RemoveFriend(userId, targetUserId, expectedRevision),
"block" => await manager.BlockPlayer(userId, targetUserId, expectedRevision),
"unblock" => await manager.UnblockPlayer(userId, targetUserId, expectedRevision),
_ => throw new System.ArgumentException("Unknown action")
};
if (!result.IsSuccess) {
Debug.LogWarning(result.ErrorCode); // Timeout/409: reload and reconcile; do not repeat automatically.
return;
}
Debug.Log(result.Data.revision); // Replace the whole displayed snapshot.
}
// Accept/decline: original incoming requestId. Cancel: original outgoing requestId.
// Never replace expectedRevision on an uncertain retry. A new request is a new identity.
// FindPlayer(userId, exactUuidOrHCode) never searches names or emails.
// Last login is nullable, never an online flag. No hidden polling timer.이 예시는 Unity SDK(C#)와 REST API를 사용합니다. Godot과 Unreal도 각자의 SDK에서 같은 호출을 제공합니다: 퀵스타트 보기
