알림 이벤트 개요

Strix Unity SDK에는 구독할 수 있는 이벤트가 몇 가지 있습니다. 이들 중 일부(전체는 아님)는 이벤트의 추가 세부정보나 오류 코드 같은 유용한 정보를 제공합니다.

이벤트 간 상호작용은 이벤트의 순서를 참조해 주십시오.

방 이벤트

(StrixNetwork.instance.roomSession.roomClient에서 이용 가능.)

  • 네트워크 동작에 대한 현재 클라이언트의 응답

    RoomCreated

    방 생성 즉시 실행됨

    RoomJoined

    방 입장 즉시 실행됨

    RoomLeft

    방 퇴장 즉시 실행됨

  • 네트워크 동작에 대한 현재 클라이언트 또는 다른 클라이언트의 응답

    RoomSet

    현재 클라이언트 등이 방 속성을 수정하면 실행됨

    RoomDeleted

    현재 클라이언트 등이 방을 삭제하면 실행됨

  • 다른 클라이언트나 서버에 대해 실행되는 동작에서 유래하는 이벤트

    RoomJoinNotified

    새 방 멤버가 방에 입장하면 실행됨

    RoomLeaveNotified

    방 멤버가 방을 떠나면 실행됨

    RoomDeleteNotified

    방이 삭제되면 실행됨

    RoomSetNotified

    방장이 방 속성을 수정하면 실행됨

    RoomSetMemberNotified

    방 멤버가 자기 속성을 수정하면 실행됨

    RoomDirectRelayNotified

    직접 릴레이 메시지를 받으면 실행됨

    RoomRelayNotified

    방송 릴레이 메시지를 받으면 실행됨

    MatchRoomKickNotified

    방 멤버가 방에서 퇴장당하면 실행됨

    RoomOwnerChanged

    방 소유권이 이전되면 실행됨

    참고

    RoomJoinNotified 이벤트의 핸들러가 이름이 Data인 멤버와 함께 인수를 받고, GetNewlyJoinedMember 메서드는 그 입장한 멤버에 관한 정보가 들어 있는 개체를 제공합니다. 정보 개체의 타입은 SoftGear.Strix.Client.Room.Model.IRoomMember 인터페이스로 정의되며, 여기에는 몇 가지 속성이 있습니다.

    단, Strix Cloud를 이용할 때 개체는 IRoomMember를 실행하는 SoftGear.Strix.Client.Match.Room.Model.MatchRoomMember 클래스의 인스턴스입니다. 따라서, 멤버에 관해 정보가 더 필요하다면 아래 코드 조각처럼 MatchRoomMember에 캐스트해도 됩니다.

    StrixNetwork.instance.roomSession.roomClient.RoomJoinNotified =
        e => Debug.Log(((MatchRoomMember)e.Data.GetNewlyJoinedMember()).GetName());
    

    이것은 이름이 Notified이고 인수가 (간접적으로) IRoomMember를 제공하는 다른 방 이벤트(예를 들면 RoomLeaveNotified 이벤트)도 마찬가지입니다.

레플리카 이벤트

(StrixNetwork.instance.roomSession.replicaClient에서 이용 가능.)

ReplicaCreateNotified

새 레플리카가 만들어지면 실행됨

ReplicaSetNotified

누군가 레플리카의 속성을 바꾸면 실행됨

ReplicaDeleteNotified

누군가 레플리카를 삭제하면 실행됨

ReplicaChangeOwnerNotified

레플리카가 새 주인을 찾으면 실행됨

세션 이벤트

(StrixNetwork.instance.roomSessionStrixNetwork.instance.masterSession에서 모두 이용 가능.)

Connected

새 연결이 만들어지면 호출됨

ConnectFailed

새 연결을 시도했지만 실패하면 호출됨

Closed

기존 연결이 종료되면 호출됨

ErrorThrown

오류가 발생하면 호출됨

대체로 .NET 라이브러리의 SocketException이 원인입니다. 호스트 주소를 해결할 수 없을 때도 발생합니다.

참고

roomSession의 세션 이벤트는 방 서버 연결을 담당하며, masterSession에 있는 것은 마스터 서버 연결을 담당합니다.