Play 게임즈 친구에서는 플레이어가 게임 간 친구 목록을 만들고 관리할 수 있습니다. 플레이어가 친구와 함께 게임을 할 수 있도록 개발자는 이 친구 목록에 대한 액세스를 요청할 수 있습니다. 친구 시스템에 관한 자세한 내용은 친구 개념 페이지를 참고하세요.
시작하기 전에
Unity 프로젝트와 Unity용 Google Play 게임즈 플러그인을 설정합니다. 자세한 내용은 시작 가이드를 참고하세요.
이러한 API를 가장 잘 구현하는 방법에 관한 안내는 권장사항 가이드라인을 참고하세요.
이러한 API를 가장 잘 구현하는 방법에 관한 안내는 권장사항 가이드라인을 참고하세요.
친구 설정
친구를 설정하려면 다음 기능을 사용합니다.
친구 보기: 인게임 친구 목록에 Play 게임즈 친구를 추가할 수 있도록 플레이어의 친구 목록에 대한 액세스 권한을 요청합니다.
플레이어 프로필 보기: 플레이어가 다른 플레이어의 Play 게임즈 프로필을 볼 수 있습니다. 이는 필수적인 요소로, 플레이어가 자신의 친구가 누구인지 알고 게임 내에 있는 다른 Play 게임즈 플레이어에 연결할 수 있기 때문입니다. 팝업을 트리거하려면 UI 요소에 연결되어야 합니다. 자세한 내용은 친구 가이드라인을 참고하세요.
친구 보기
친구를 로드하는 방법에는 ISocial
프레임워크를 사용하거나 PlayGamesPlatform
을 직접 사용하는 두 가지 방법이 있습니다.
ISocial 프레임워크로 친구 로드
Social.localUser.LoadFriends((success) => {
Debug.Log("Friends loaded OK: " + ok));
foreach(IUserProfile p in Social.localUser.friends) {
Debug.Log(p.userName + " is a friend");
}
그러나 현재 플레이어가 관련 정보에 액세스할 권한을 아직 게임에 부여하지 않았다면 이 호출은 실패하게 됩니다. GetLastLoadFriendsStatus
를 사용하여, 동의가 없어 LoadFriends
가 실패했는지 확인합니다.
PlayGamesPlatform.Instance.GetLastLoadFriendsStatus((status) => {
// Check for consent
if (status == LoadFriendsStatus.ResolutionRequired) {
// Ask for resolution.
}
});
게임에서 AskForLoadFriendsResolution
을 호출하여 현재 플레이어에게 친구 목록을 공유하도록 요청할 수 있습니다.
PlayGamesPlatform.Instance.AskForLoadFriendsResolution((result) => {
if (result == UIStatus.Valid) {
// User agreed to share friends with the game. Reload friends.
} else {
// User doesn’t agree to share the friends list.
}
});
이 함수를 사용하면 적절한 플랫폼별 친구 공유 UI가 표시됩니다. 이 UI에서 플레이어에게 친구와 게임을 공유할지 묻는 메시지가 표시됩니다.
PlayGamesPlatform으로 친구 로드
친구를 로드하는 또 다른 방법은 LoadFriends
및 LoadMoreFriends
를 사용하는 것입니다.
PlayGamesPlatform.Instance.LoadFriends(pageSize, forceReload, (status) => {
// Check if the call is successful and if there are more friends to load.
});
PlayGamesPlatform.Instance.LoadMoreFriends(pageSize, (status) => {
// Check if there are more friends to load.
});
pageSize
매개변수는 이 페이지에 요청할 항목 수를 나타냅니다.
캐시된 데이터가 이미 있다면 반환된 버퍼는 그 크기를 초과하여 더 많은 것을 포함할 수 있습니다. 컬렉션에 충분한 레코드가 포함된 경우 버퍼는 최소한 이 많은 항목을 반드시 포함하게 됩니다. forceReload
가 true
로 설정되면 이 호출은 로컬에 캐시된 데이터를 모두 삭제하고 서버에서 최신 데이터를 가져오려고 시도합니다. 일반적으로 이 동작은 사용자가 시작한 새로고침과 같은 작업에 사용됩니다. 보통 데이터 캐싱의 이점을 얻으려면 false
로 설정되어야 합니다.
콜백이 LoadFriendsStatus.LoadMore
를 반환하면 로드할 친구가 더 있는 것입니다. LoadFriendsStatus.ResolutionRequired
는 사용자가 친구 목록을 공유하지 않았으며 PlayGamesPlatform.Instance.AskForLoadFriendsResolution
을 직접 호출할 수 있음을 나타냅니다.
친구 목록 공개 상태 확인
PlayGamesPlatform.Instance.GetFriendsListVisibility
를 사용하여 사용자가 친구 목록을 게임과 공유했는지 확인합니다. 가능한 반환 상태는 다음과 같습니다.
FriendsListVisibilityStatus.RequestRequired
는 동의를 구해야 한다는 의미입니다.FriendsListVisibilityStatus.Visible
은 친구 목록 로드에 성공해야 함을 나타냅니다.FriendsListVisibilityStatus.Unknown
은 일반적으로 발생해서는 안 됩니다.forceReload
를 true로 설정하여 데이터를 새로 고칠 수 있습니다.
PlayGamesPlatform.Instance.GetFriendsListVisibility(forceReload, (friendsListVisibilityStatus) => {});
플레이어 프로필 보기
플레이어를 친구로 추가하거나 삭제하려면 프로필 표시 및 프로필 비교 함수를 사용합니다. 이 함수는 사용자의 Play 게임즈 프로필을 표시하는 하단 시트 대화상자를 트리거합니다. 요청된 플레이어의 플레이어 ID를 사용하여 함수를 호출합니다. 플레이어와 친구에게 인게임 닉네임이 있으면 호출 시 이를 사용하여 프로필 UI에 컨텍스트를 추가합니다.
PlayGamesPlatform.Instance.ShowCompareProfileWithAlternativeNameHintsUI(
mFirstFriendId, /* otherPlayerInGameName= */ null, /* currentPlayerInGameName= */ null,
(result) => {
// Profile comparison view has closed.
});