マルチプレイの環境構築【Appendix】

ここではマルチプレイの環境構築についての補足を記載します。

komekokokusan.hatenadiary.jp
komekokokusan.hatenadiary.jp

schemas.jsonについて

前編で公開した内容のインスペクターについて補足します。
Room StateとはRoomに接続しているプレイヤーと関連情報、オブジェクトの位置等を管理するためのStatePropertyです。
Schema Typesはサーバーとクライアント間の通信用のデータ構造です。

index.tsについて

前編で公開した内容のソースコードの各Eventについて補足します。

onCreate(options: SandboxOptions) Roomが作成されたときに一度呼び出される為、Room初期化ロジックを追加できます。
onJoin(client: SandboxPlayer) ClientがRoomに入場するときに呼び出されます。
このときのClientのIDと文字情報はSendboxPlayerに含まれています。
onLeave(client: SandboxPlayer, consented?: boolean) ClientがRoomから退場するときに呼び出されます。
constendはClientが切断を要求した場合はTrue、それ以外はFalseに設定される値です。
onTick(deltaTime: number) 一定のIntervalTimeごとに呼び出されます。
IntervalTimeはSandboxOptionsでTickIntervalに設定された値が適用されます。

ClientStarterについて

後編で公開した内容のソースコードの各Eventについて補足します。

OnStateChange(state: State, isFirst: boolean) 最初の接続時とその後サーバーでStateが変更されると呼び出されます。
StateはRoom Stateで定義されたSchemaにアクセス可能。
isFirstは最初の接続時のときはTrue,以降はFalseに設定される値です。
OnJoinPlayer(sessionId: string, player: Player) Playerが入場したときに呼び出されます。
OnLeavePlayer(sessionId: string, player: Player) Playerが退場するときに呼び出されます。
OnUpdatePlayer(sessionId: string, player: Player) 位置情報などPlayerの情報が変更されたときに呼び出されます。


Room EventListener

RoomCreated(Room) Roomが作成され接続可能な場合に呼び出されます。生成されたRoomを引数に渡します。
RoomJoined(Room) Roomに接続されたときに呼び出されます。接続されたRoomを引数に渡します。
RoomLeave(RoomLeaveEvent) Roomから退場するときに呼び出されます。
RoomReconnected(Room) Room に再接続されたときに呼び出されます。
RoomError(RoomErrorEvent) Room にエラーが発生したときに呼び出されます。