交互机制
交互机制处理玩家的点击、潜行等交互动作,支持物品过滤和冷却控制。你还可以通过视线锁定功能获取玩家正在注视的目标。
交互类型
| 类型 | 说明 |
|---|---|
RIGHT_CLICK | 右键点击 |
LEFT_CLICK | 左键点击 |
SNEAK_RIGHT_CLICK | 潜行 + 右键 |
SNEAK_LEFT_CLICK | 潜行 + 左键 |
SNEAK_TOGGLE | 切换潜行状态 |
交互定义
每个交互通过 InteractDefinition 描述:
| 字段 | 说明 |
|---|---|
id | 交互 ID,全局唯一 |
type | 交互类型(见上表) |
materialFilter | 物品类型过滤,仅手持指定物品时触发 |
script | 触发时执行的脚本 ID |
cooldownMs | 冷却时间(毫秒) |
variables | 自定义变量(键值对) |
materialFilter 可以限制交互只在玩家手持特定物品时生效。例如设置为 DIAMOND_SWORD 后,只有手持钻石剑时才会触发该交互。
视线锁定
InteractService 提供视线锁定功能,可以获取玩家当前注视的实体目标。
| 操作 | 说明 |
|---|---|
getLookAtTarget | 获取玩家视线方向上的目标实体 |
getLookAtTarget 接受两个参数:
player:目标玩家maxDistance:最大检测距离,默认50.0格
返回 LookAtResult,包含:
target:目标实体distance:与目标的距离
交互服务
InteractService 提供交互的注册和管理:
| 操作 | 说明 |
|---|---|
register | 注册一个交互定义 |
getLookAtTarget | 获取视线锁定目标 |
提示
交互的冷却是按玩家隔离的。同一个交互定义,不同玩家的冷却互不影响。