방 이벤트와 Notification Listener

Strix는 개체와 그 동작의 동기화를 방에서 처리합니다. 그러나, 이벤트 중에는 플레이어 연결이나 방의 상태에 적용되는 것도 있습니다. 플레이어가 스코어보드나 맵 정보 같은 것을 업데이트해야 할 때 이 이벤트들의 알림을 받으면 도움이 됩니다.

플레이어가 알림을 받겠다고 Notification Listener 요소에 등록한 경우에만 서버가 방에 연결된 플레이어들에게 통보합니다.

Strix Notification Listener 요소

Strix Notification Listener는 블루프린트에 연결되며, 알림이 도착했을 때 동작을 트리거하는 역할을 합니다.

Strix Notifier > Channel ID 아래에 채널 ID가 필요하며, 이것으로 어떤 채널을 들을지 지정합니다.

Notification Listener 요소는 UE 블루프린트 이벤트 시스템을 이용하여 이벤트 발생을 알립니다. 이 요소는 이벤트 아래에서 각 이벤트를 제공하며, 이벤트 옆에 있는 + 아이콘을 클릭하면 블루프린트에 추가됩니다. 이 방 멤버가 특정 네트워크 이벤트의 알림을 받으면 그래프의 Unreal 이벤트가 호출됩니다.

블루프린트에는 여러 리스너가 서로 다른 채널에 설정되어 있을 수 있습니다. 단 알림 타입당 블루프린트 이벤트는 하나만 가능합니다. Strix는 알림 이벤트마다 채널 ID가 부가되므로 채널을 서로 구별할 수 있습니다.

방 이벤트

아래 목록은 방 이벤트와 그것에 대한 설명입니다. 이벤트별로 부여되는 값도 나와 있습니다.

Strix Room Context Open

현재 플레이어가 방에 입장하면 호출됩니다. 채널 ID를 호출합니다.

Strix Room Join Notification Arrived

플레이어가 방에 입장하면 호출됩니다.
채널 ID와 방에 입장한 멤버를 나타내는 Strix Room Member 스트럭트를 리턴합니다.

Strix Room Leave Notification Arrived

플레이어가 방을 떠나면 호출됩니다.
채널 ID와 방을 나간 멤버를 나타내는 Strix Room Member 스트럭트를 리턴합니다.

Strix Room Set Notification Arrived

플레이어가 방의 속성을 설정하면 호출됩니다.
채널 ID와 방을 설정한 멤버를 나타내는 Strix Room Member 스트럭트를 리턴합니다.

Strix Room Set Member Notification Arrived

플레이어가 방 멤버의 속성을 설정하면 호출됩니다.
채널 ID와 설정된 멤버를 나타내는 Strix Room Member 스트럭트를 리턴합니다.

Strix Room Kick Notification Arrived

플레이어가 퇴장당하면 호출됩니다.
채널 ID를 호출합니다.

Strix Room Delete Notification Arrived

방이 삭제되면 호출됩니다.
채널 ID를 호출합니다.

Strix Room Context Closed

현재 플레이어가 방에서 퇴장당하거나 방을 나가면 호출됩니다.
채널 ID를 호출합니다.

Strix Room Owner Changed

방장이 바뀌면 호출됩니다.
채널 ID, 새 방장, 이전 방장을 리턴합니다.

참고

플레이어가 시작한 이벤트(Room Set Member 등)는 시작한 플레이어에게 알림을 보내지 않습니다. 이것의 결과는 성공과 실패 호출로 처리합니다. 방에 있는 다른 플레이어들은 알림을 받습니다.

단, 현재 플레이어가 방에 들어오거나 방에서 나가면 트리거되는 Room Context OpenRoom Context Closed 이벤트는 예외입니다.

Strix Notification Listener Object

고급 이용 사례를 지원하기 위해 Strix는 비요소 버전의 Notification Listener로서 Strix Notification Listner Object를 제공합니다. 이것은 UActorComponent가 아닌 UObject 개체에서 바로 유래하므로, 액터 없이도 이용할 수 있습니다. 요소 버전과 동일한 방 이벤트를 제공합니다.

예를 들면, GameInstance에서 Strix Notification Listener Object의 인스턴스를 만들고 레벨과 무관하게 방 이벤트를 들을 수 있습니다.

이것을 이용하는 순서는 다음과 같습니다.

  1. 게임에 InitializeStrixNetwork 함수(또는 그 변종)가 없다면 그것을 호출하여 Strix Network를 초기화합니다.

  2. Strix Notification Listener Object 클래스의 인스턴스를 만들어 변수에 저장합니다.

  3. Init 멤버 함수를 호출하여 인스턴스를 초기화합니다.

  4. 커스텀 이벤트 노드를 Listener 개체와 연계합니다.

Using a Strix Notification Listener Object