온라인 서비스 소셜 인터페이스(Online Services Social Interface) 는 사용자 간의 관계를 관리합니다. 여기에는 다음이 포함됩니다.
- 플레이어의 친구 목록을 가져오고 확인합니다.
- 친구 초대를 보냅니다.
- 친구 초대를 수락/거부합니다.
- 차단된 플레이어 목록을 확인합니다.
- 다른 플레이어를 차단합니다.
API 개요
기능
다음 표에는 소셜 인터페이스가 제공하는 함수에 대한 개요가 나와 있습니다.
함수 | 설명 |
---|---|
보기 | |
QueryFriends |
플레이어의 친구 목록을 쿼리합니다. |
GetFriends |
QueryFriends 에 의해 캐시된 친구 목록을 얻습니다. |
초대 | |
SendFriendInvite |
친구 초대를 보냅니다. |
AcceptFriendInvite |
친구 초대를 수락합니다. |
RejectFriendInvite |
친구 초대를 거부합니다. |
차단 | |
QueryBlockedUsers |
차단된 사용자 목록을 쿼리합니다. |
GetBlockedUsers |
QueryBlockedUsers 에 의해 캐시된 차단된 사용자 목록을 얻습니다. |
BlockUser |
특정 사용자를 차단합니다. |
이벤트 리스닝 | |
OnRelationshipUpdated |
친구 목록을 업데이트하면 트리거되는 이벤트입니다. |
프라이머리 구조체
소셜 인터페이스는 주로 FFriend
구조체 및 파라미터와 반환 값을 전달하는 함수별 구조체들을 통해 커뮤니케이션합니다.
FFriend
멤버 | 타입 | 설명 |
---|---|---|
FriendId |
FAccountId |
이 친구의 계정 ID입니다. |
DisplayName |
FString |
이 친구의 이름을 표시합니다. |
Nickname |
FString |
이 친구의 로컬 닉네임입니다. 사용 가능 여부는 플랫폼의 온라인 서비스 관련 문서를 참조하세요. |
Relationship |
ERelationship |
이 친구와의 관계입니다. |
열거형 클래스
ERelationship
열거형 클래스는 FFriend
구조체를 통해 액세스되고 표현되는 로컬 사용자와 온라인 사용자 간의 관계 상태를 저장합니다.
ERelationship
값 | 설명 |
---|---|
Friend |
친구 |
NotFriend |
친구가 아님 |
InviteSent |
사용자에게 초대를 보냈습니다. |
InviteReceived |
사용자에게 초대를 받았습니다. |
Blocked |
로컬 사용자가 이 사용자를 차단했습니다. |
프로세스 플로
친구 보기
플레이어는 게임을 시작할 때 어떤 친구가 온라인 접속 상태인지 확인합니다. 이를 구현하려면 QueryFriends
가 소셜 인터페이스로 플레이어의 친구 목록을 캐시한 다음 GetFriends
가 이전에 캐시된 친구 목록을 읽기 용도로 가져와야 합니다. 이제 플레이어는 친구 목록을 볼 수 있으므로, 친구가 로비에 참가하도록 초대하여 게임 세션에 함께 입장할지를 결정할 수 있습니다.
친구 초대
친구 및 다른 온라인 플레이어들과 함께 플레이한 후, 플레이어는 함께 게임을 즐긴 다른 플레이어 몇 명을 만나게 됩니다. 플레이어는 이 온라인 플레이어들 중 2명에게 친구 초대를 보내기로 합니다. SendFriendInvite
가 호출될 때마다 제공된 단일 플레이어에게 친구 초대를 보냅니다. 온라인 플레이어 중 한 명이 이 초대를 보고 거절합니다. 게임은 RejectFriendInvite
를 호출하여 플레이어의 초대를 거절합니다.
반면 두 번째 온라인 플레이어는 초대를 수락합니다. AcceptFriendInvite
가 호출되어 플레이어의 초대를 수락합니다. 이 친구 수락은 초대를 보낸 플레이어와 초대를 수락한 온라인 플레이어 모두에게 OnRelationshipUpdated
이벤트를 트리거합니다.
사용자 차단
새 친구와 플레이하는 도중 플레이어는 다른 온라인 플레이어를 만나게 됩니다. 이번에는 플레이어가 이 온라인 플레이어와 앞으로 상호작용하지 않기로 결정합니다. 플레이어는 이 온라인 플레이어에 대한 차단을 진행합니다. 플레이어는 차단 목록을 쿼리하여 자신이 차단한 온라인 플레이어들을 볼 수 있습니다. QueryBlockedUsers
가 인터페이스에서 정보를 캐시하고, 이어서 GetBlockedUsers
호출이 차단된 플레이어 목록을 얻습니다. 해당 온라인 플레이어가 이 목록에 표시되지 않는 경우 BlockUser
를 호출하여 해당 온라인 플레이어를 플레이어의 차단 목록에 추가합니다.
일부 플랫폼에서는 초대 및 차단 API가 플랫폼 다이얼로그를 열어 관련된 액션을 진행할 수도 있습니다. 자세한 내용은 사용 중인 특정 플랫폼 관련 문서를 참조하세요.
온라인 서브시스템에서 코드 변환
온라인 서비스 소셜 인터페이스는 이전에 온라인 서브시스템 친구 인터페이스에 의해 처리된 모든 코드를 담당합니다.
추가 정보
헤더 파일
자세한 정보가 필요한 경우 Social.h
헤더 파일을 직접 참조하세요. 소셜 인터페이스 헤더 파일 Social.h
의 디렉터리 위치는 다음과 같습니다.
Engine\Plugins\Online\OnlineServices\Source\OnlineServicesInterface\Public\Online
UE 소스 코드를 얻는 방법을 알아보려면 언리얼 엔진 소스 코드 다운로드 문서를 참고하세요.
함수 파라미터 및 반환 타입
파라미터를 전달하고 함수의 반환 결과를 처리하는 방법을 비롯하여 함수 파라미터 및 반환 타입에 대한 자세한 설명은 온라인 서비스 개요 페이지의 함수 섹션을 참조하세요.