マルチプレイルームステート
マルチプレイルームは、接続されたプレイヤーまたはオブジェクトの位置を管理するためのStateプロパティを提供します。
Stateのデータ定義は、マルチプレイパッケージの下にあるスキーマファイルから管理されます。 onStateChangeイベントは、クライアントがルームへの接続を成功裏に確立したときに最初に呼び出され、その後、状態データに変更があるたびに呼び出されます。
API | 説明 |
---|---|
state.SCHEMA_NAME | スキーマファイルで定義されたSCHEMA_NAMEフィールドにstateを使用してアクセスできます。 クライアントまたは内部サーバーロジックからのリクエストでフィールド値を変更できます。 変更された状態は、その後、OnStateChangeイベントを使用してクライアントに自動的に伝播されます。 |
📘 以下のガイドを参照してください。 [ZEPETO.Multiplay(Server) API]
API | 説明 |
---|---|
room.OnStateChange(State, isFirst) | ルームに参加するときに状態変更コールバックを登録できます。 最初にルーム全体の状態を受け取り、その後は変更された状態のみを受け取ります。 |
スキーマは、ルーム内の現在の状態を定義するためのデータ構造です。ルームは主にプレイヤー情報、プレイヤーまたはオブジェクトの位置などを管理するために使用されます。
スキーマを編集するには、プロジェクトビュー → MultiplayPackageアセット → schema.jsonを選択し、インスペクタウィンドウでワールドに使用するデータ型を変更します。 インスペクタウィンドウでワールドに使用するデータ型を変更できます。
スキーマタイプはワールドで使用されるデータ構造です。インスペクタ → スキーマタイプで、[+]ボタンを押してデータを追加します。
ルームステートはワールドルームの現在の状態を示すプロパティであり、上記で定義されたスキーマ構造で表現されます。
スキーマタイプの中から、ワールドの現在の状態として使用されるtypeRoom Stateを選択し、SCHEMA_NAMEとして設定します。