通知イベントの概要¶
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.roomSession
とStrixNetwork.instance.masterSession
の両方にあります。)
Connected |
新しい接続が確立されるたびに呼び出されます。 |
ConnectFailed |
新しい接続を試みて失敗したときに呼び出されます。 |
Closed |
既存の接続が終了したときに呼び出されます。 |
ErrorThrown |
エラーが発生したときに呼び出されます。 通常、これは、基礎となる.NETライブラリのSocketExceptionまたはホストアドレスを解決できなかった場合に発生します。 |
注釈
roomSessionのセッションイベントはルームサーバー接続に関するもので、masterSessionのセッションイベントはマスターサーバー接続に関するものです。