创造你的世界
多人游戏

多人游戏房间状态

7min
Document image


Multiplay Room 提供一个状态属性,用于管理连接的玩家或对象位置。

状态的数据定义可以从模式文件中管理,该文件位于多玩家包下。 当客户端成功建立与房间的连接时,首先调用 onStateChange 事件,之后每当状态数据发生变化时都会调用该事件。

服务器 API

API

描述

state.SCHEMA_NAME

您可以通过状态访问在模式文件中定义的 SCHEMA_NAME 字段。 您可以在客户端请求或内部服务器逻辑的请求中修改字段值。 更改的状态会通过 OnStateChange 事件自动传播到客户端。

📘 请参考以下指南。 [ZEPETO.Multiplay(服务器) API]

TypeScript


API

描述

room.OnStateChange(State, isFirst)

您可以在加入房间时注册状态更改回调。 您可以第一次接收整个房间的状态,之后只会接收更改的状态。

客户端 API

TypeScript




定义模式文件

模式是定义房间当前状态的数据结构。房间主要用于管理玩家信息、玩家或物体位置等。

要编辑架构,您可以选择项目视图 → MultiplayPackage 资产 → schema.json,然后在检查器窗口中修改用于世界的数据类型。 您可以在检查器窗口中修改用于世界的数据类型。

步骤 1 : 定义架构类型

架构类型是用于世界的数据结构。在检查器 → 架构类型中,按下 [+] 按钮并添加数据。

4-4-3-1.gif
4-4-3-1.gif




步骤 2 : 添加房间状态

房间状态是显示世界房间当前状态的属性,并在上述定义的架构结构中表示。

在架构类型中,选择将用作世界当前状态的类型房间状态,并将其设置为 SCHEMA_NAME。

Document image


Schemas.json 示例

JSON