ここではマルチプレイの環境構築についての補足を記載します。
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 にエラーが発生したときに呼び出されます。 |