Appearance
以下 API 仅适用于服务端脚本
构造函数
PlayerFallManager()
实例化一个玩家坠落管理类
输入参数
| 参数 | 必填 | 默认值 | 类型 | 说明 |
|---|---|---|---|---|
| FallConfig | 是 | FallConfigObjectConstructor | 初始化配置对象 |
返回值
| 类型 | 说明 |
|---|---|
| PlayerFallManager | 玩家坠落管理类 |
属性
thresholdY
坠落的阈值,当玩家的 Y 坐标高低差异大于此值时触发事件。
isLog
当玩家坠落到阈值以下时,打印日志,默认为 false
tickToken
游戏 world.onTick 事件处理器的令牌
players
存储玩家的 Map 集合,键为玩家 ID,值为玩家的坠落配置
onThresholdExceeded
当玩家坠落到 thresholdY 设定的阈值时执行的回调函数。
方法
addPlayer()
添加玩家到坠落管理器中
输入参数
| 参数 | 必填 | 默认值 | 类型 | 说明 |
|---|---|---|---|---|
| fallConfig | 是 | FallConfig | 玩家的坠落配置 |
返回值
| 类型 | 说明 |
|---|---|
| Map‹string, FallConfigObject› | 更新后的玩家 Map 集合 |
removePlayer()
从坠落管理器中移除玩家
输入参数
| 参数 | 必填 | 默认值 | 类型 | 说明 |
|---|---|---|---|---|
| id | 是 | string | 玩家 ID |
返回值
| 类型 | 说明 |
|---|---|
| boolean | 移除成功返回 true,否则返回 false |
接口
FallConfigObjectConstructor
构造玩家坠落管理器的配置对象
| 名 | 类型 | 说明 |
|---|---|---|
| thresholdY | number | 坠落的阈值,当玩家的 Y 坐标高低差异大于此值时触发事件。 - 当没有配置玩家单独的阈值时,使用全局阈值 |
| onThresholdExceeded | (handle: onThresholdExceeded) => void | 当玩家坠落到阈值以下时执行的回调函数。- 当没有配置玩家单独的回调函数时,使用全局回调函数 |
FallConfig
配置玩家坠落时的行为
| 名 | 类型 | 说明 |
|---|---|---|
| entity | GameEntity | 玩家实体对象 |
| thresholdY | number | 可选参数,表示坠落的阈值,当玩家的 Y 坐标高低差异大于此值时触发事件。 - 当设定后将优先设定本阈值,而不使用全局阈值 |
| onThresholdExceeded | (handle: onThresholdExceeded) => void | 可选参数,当玩家坠落到 thresholdY 设定的阈值时执行的回调函数。 - 当设定后将优先触发本回调函数,不触发全局回调函数 |
onThresholdExceeded
表示当坠落到阈值以下时传递的数据
| 名 | 类型 | 说明 |
|---|---|---|
| entity | GameEntity | 玩家实体对象 |
| time.start | number | 坠落开始时间戳 |
| time.end | number | 坠落结束时间戳 |
| time.fallTimeMS | number | 坠落开始和结束时相差时间戳 |
| yDistance.start | number | 坠落开始 Y 坐标 |
| yDistance.end | number | 坠落结束 Y 坐标 |
| yDistance.absFallDistance | number | 坠落开始和结束时相差坠落距离 |