# 控制

# 索引

事件
描述
ClientJumpButtonPressDownEvent 客户端 跳跃按钮按下事件,返回值设置参数只对当次按下事件起作用
ClientJumpButtonReleaseEvent 客户端 跳跃按钮按下释放事件
GetEntityByCoordEvent 客户端 玩家点击屏幕时触发,多个手指点在屏幕上时,只有第一个会触发。
GetEntityByCoordReleaseClientEvent 客户端 玩家点击屏幕后松开时触发,多个手指点在屏幕上时,只有最后一个手指松开时触发。
GyroSensorChangedClientEvent 客户端 触发时机:陀螺仪传感器姿态发生变化时
HoldBeforeClientEvent 客户端 玩家长按屏幕,即将响应到游戏内时触发。仅在移动端或pc的F11模式下触发。pc的非F11模式可以使用RightClickBeforeClientEvent事件监听鼠标右键
LeftClickBeforeClientEvent 客户端 玩家按下鼠标左键时触发。仅在pc的普通控制模式(即非F11模式)下触发。
LeftClickReleaseClientEvent 客户端 玩家松开鼠标左键时触发。仅在pc的普通控制模式(即非F11模式)下触发。
MouseWheelClientEvent 客户端 鼠标滚轮滚动时触发
OnBackButtonReleaseClientEvent 客户端 返回按钮(目前特指安卓系统导航中的返回按钮)松开时触发
OnClientPlayerStartMove 客户端 移动按钮按下触发事件,在按住一个方向键的同时,去按另外一个方向键,不会触发第二次
OnClientPlayerStopMove 客户端 移动按钮按下释放时触发事件,同时按下多个方向键,需要释放所有的方向键才会触发事件
OnGamepadControllerLayoutChangeClientEvent 客户端 游戏手柄按键映射改变事件
OnGamepadKeyPressClientEvent 客户端 游戏手柄按键事件
OnGamepadStickClientEvent 客户端 游戏手柄摇杆事件
OnGamepadTriggerClientEvent 客户端 游戏手柄扳机事件
OnKeyPressInGame 客户端 按键按下或按键释放时触发
OnKeyboardControllerLayoutChangeClientEvent 客户端 键盘按键映射改变事件
OnMouseMiddleDownClientEvent 客户端 鼠标按下中键时触发
RightClickBeforeClientEvent 客户端 玩家按下鼠标右键时触发。仅在pc下触发(普通控制模式及F11模式都会触发)。
RightClickReleaseClientEvent 客户端 玩家松开鼠标右键时触发。仅在pc的普通控制模式(即非F11模式)下触发。在F11下右键,按下会触发RightClickBeforeClientEvent,松开时会触发TapOrHoldReleaseClientEvent
TapBeforeClientEvent 客户端 玩家点击屏幕并松手,即将响应到游戏内时触发。仅在移动端或pc的F11模式下触发。pc的非F11模式可以使用LeftClickBeforeClientEvent事件监听鼠标左键
TapOrHoldReleaseClientEvent 客户端 玩家点击屏幕后松手时触发。仅在移动端或pc的F11模式下触发。pc的非F11模式可以使用LeftClickReleaseClientEvent与RightClickReleaseClientEvent事件监听鼠标松开

# 控制

# ClientJumpButtonPressDownEvent

客户端

  • 描述

    跳跃按钮按下事件,返回值设置参数只对当次按下事件起作用

  • 参数

    参数名
    数据类型
    说明
    continueJump bool 设置是否执行跳跃逻辑
  • 返回值

# ClientJumpButtonReleaseEvent

客户端

  • 描述

    跳跃按钮按下释放事件

  • 参数

  • 返回值

# GetEntityByCoordEvent

客户端

  • 描述

    玩家点击屏幕时触发,多个手指点在屏幕上时,只有第一个会触发。

  • 参数

  • 返回值

# GetEntityByCoordReleaseClientEvent

客户端

  • 描述

    玩家点击屏幕后松开时触发,多个手指点在屏幕上时,只有最后一个手指松开时触发。

  • 参数

  • 返回值

# GyroSensorChangedClientEvent

客户端

  • 描述

    触发时机:陀螺仪传感器姿态发生变化时

  • 参数

    参数名
    数据类型
    说明
    xDiff float x轴角速度,单位为弧度/s
    yDiff float y轴角速度,单位为弧度/s
    zDiff float z轴角速度,单位为弧度/s
    timestamp float 触发时间戳,秒
  • 返回值

  • 备注

    • 该事件只适用于移动端

# HoldBeforeClientEvent

客户端

  • 描述

    玩家长按屏幕,即将响应到游戏内时触发。仅在移动端或pc的F11模式下触发。pc的非F11模式可以使用RightClickBeforeClientEvent事件监听鼠标右键

  • 参数

    参数名
    数据类型
    说明
    cancel bool 设置为True可拦截原版的挖方块/使用物品/与实体交互响应
  • 返回值

  • 备注

    • 玩家长按屏幕的处理顺序为:
      1. 玩家点击屏幕,在长按判定时间内(默认为400毫秒,可通过SetHoldTimeThreshold接口修改)一直没有进行拖动或松手
      2. 触发该事件
      3. 若事件没有cancel,则根据主手上的物品,准心处的物体类型以及与玩家的距离,进行挖方块/使用物品/与实体交互等操作 即该事件只会在到达长按判定时间的瞬间触发一次,后面一直按住不会连续触发,可以使用TapOrHoldReleaseClientEvent监听长按后松手
    • 与TapBeforeClientEvent事件类似,被ui层捕获,没有穿透到世界的点击不会触发该事件

# LeftClickBeforeClientEvent

客户端

  • 描述

    玩家按下鼠标左键时触发。仅在pc的普通控制模式(即非F11模式)下触发。

  • 参数

    参数名
    数据类型
    说明
    cancel bool 设置为True可拦截原版的挖方块或攻击响应
  • 返回值

# LeftClickReleaseClientEvent

客户端

  • 描述

    玩家松开鼠标左键时触发。仅在pc的普通控制模式(即非F11模式)下触发。

  • 参数

  • 返回值

# MouseWheelClientEvent

客户端

  • 描述

    鼠标滚轮滚动时触发

  • 参数

    参数名
    数据类型
    说明
    direction int 1为向上滚动,0为向下滚动
  • 返回值

# OnBackButtonReleaseClientEvent

客户端

  • 描述

    返回按钮(目前特指安卓系统导航中的返回按钮)松开时触发

  • 参数

  • 返回值

  • 备注

    • 目前仅安卓平台可用

# OnClientPlayerStartMove

客户端

  • 描述

    移动按钮按下触发事件,在按住一个方向键的同时,去按另外一个方向键,不会触发第二次

  • 参数

  • 返回值

# OnClientPlayerStopMove

客户端

  • 描述

    移动按钮按下释放时触发事件,同时按下多个方向键,需要释放所有的方向键才会触发事件

  • 参数

  • 返回值

# OnGamepadControllerLayoutChangeClientEvent

客户端

  • 描述

    游戏手柄按键映射改变事件

  • 参数

    参数名
    数据类型
    说明
    action str 行为
    newKey int 修改后的键码,详见GamepadKeyType枚举
    oldKey int 修改前的键码,详见GamepadKeyType枚举
  • 返回值

# OnGamepadKeyPressClientEvent

客户端

  • 描述

    游戏手柄按键事件

  • 参数

    参数名
    数据类型
    说明
    screenName str 当前screenName
    key int 键码,详见GamepadKeyType枚举
    isDown str 是否按下,按下为1,弹起为0
  • 返回值

# OnGamepadStickClientEvent

客户端

  • 描述

    游戏手柄摇杆事件

  • 参数

    参数名
    数据类型
    说明
    key int 键码,详见GamepadKeyType枚举
    x float 摇杆水平方向的值,从左到右取值为 -1.0 ~ 1.0
    y float 摇杆竖直方向的值,从下到上取值为 -1.0 ~ 1.0
  • 返回值

  • 备注

    • 触发时机:当摇杆摇动位置发生改变时

# OnGamepadTriggerClientEvent

客户端

  • 描述

    游戏手柄扳机事件

  • 参数

    参数名
    数据类型
    说明
    key int 键码,详见GamepadKeyType枚举
    magnitude float 扣动扳机的力度,取值为 0 ~ 1.0
  • 返回值

  • 备注

    • 触发时机:当扣动扳机的力度发生改变时

# OnKeyPressInGame

客户端

  • 描述

    按键按下或按键释放时触发

  • 参数

    参数名
    数据类型
    说明
    screenName str 当前screenName
    key str 键码(注:这里的int型被转成了str型,比如"1"对应的就是枚举值文档中的1),详见KeyBoardType枚举
    isDown str 是否按下,按下为1,弹起为0
  • 返回值

# OnKeyboardControllerLayoutChangeClientEvent

客户端

  • 描述

    键盘按键映射改变事件

  • 参数

    参数名
    数据类型
    说明
    action str 行为
    newKey int 修改后的键码,详见KeyBoardType枚举
    oldKey int 修改前的键码,详见KeyBoardType枚举
  • 返回值

# OnMouseMiddleDownClientEvent

客户端

  • 描述

    鼠标按下中键时触发

  • 参数

    参数名
    数据类型
    说明
    isDown int 1为按下,0为弹起
    mousePositionX float 按下时的x坐标
    mousePositionY float 按下时的y坐标
  • 返回值

  • 备注

    • 仅通过PushScreen创建的界面能够正常返回坐标,开启F11模式的时候,返回最后点击屏幕时的坐标

# RightClickBeforeClientEvent

客户端

  • 描述

    玩家按下鼠标右键时触发。仅在pc下触发(普通控制模式及F11模式都会触发)。

  • 参数

    参数名
    数据类型
    说明
    cancel bool 设置为True可拦截原版的物品使用/实体交互响应
  • 返回值

# RightClickReleaseClientEvent

客户端

  • 描述

    玩家松开鼠标右键时触发。仅在pc的普通控制模式(即非F11模式)下触发。在F11下右键,按下会触发RightClickBeforeClientEvent,松开时会触发TapOrHoldReleaseClientEvent

  • 参数

  • 返回值

  • 备注

# TapBeforeClientEvent

客户端

  • 描述

    玩家点击屏幕并松手,即将响应到游戏内时触发。仅在移动端或pc的F11模式下触发。pc的非F11模式可以使用LeftClickBeforeClientEvent事件监听鼠标左键

  • 参数

    参数名
    数据类型
    说明
    cancel bool 设置为True可拦截原版的攻击或放置响应
  • 返回值

  • 备注

    • 玩家点击屏幕的处理顺序为:
      1. 玩家点击屏幕,没有进行拖动,并在短按判定时间(250毫秒)内松手
      2. 触发该事件
      3. 若事件没有cancel,则根据准心处的物体类型以及与玩家的距离,进行攻击或放置等操作
    • 与GetEntityByCoordEvent事件不同的是,被ui层捕获,没有穿透到世界的点击不会触发该事件,例如:
      1. 点击原版的移动/跳跃等按钮,
      2. 通过SetIsHud(0)屏蔽了游戏操作
      3. 对按钮使用AddTouchEventHandler接口时isSwallow参数设置为True

# TapOrHoldReleaseClientEvent

客户端

  • 描述

    玩家点击屏幕后松手时触发。仅在移动端或pc的F11模式下触发。pc的非F11模式可以使用LeftClickReleaseClientEvent与RightClickReleaseClientEvent事件监听鼠标松开

  • 参数

  • 返回值

  • 备注

    • 短按及长按后松手都会触发该事件
    • 移动端及pc的F11模式下点触流程见下图 点触说明

ClientJumpButtonPressDownEvent

ClientJumpButtonReleaseEvent

GetEntityByCoordEvent

GetEntityByCoordReleaseClientEvent

GyroSensorChangedClientEvent

HoldBeforeClientEvent

LeftClickBeforeClientEvent

LeftClickReleaseClientEvent

MouseWheelClientEvent

OnBackButtonReleaseClientEvent

OnClientPlayerStartMove

OnClientPlayerStopMove

OnGamepadControllerLayoutChangeClientEvent

OnGamepadKeyPressClientEvent

OnGamepadStickClientEvent

OnGamepadTriggerClientEvent

OnKeyPressInGame

OnKeyboardControllerLayoutChangeClientEvent

OnMouseMiddleDownClientEvent

RightClickBeforeClientEvent

RightClickReleaseClientEvent

TapBeforeClientEvent

TapOrHoldReleaseClientEvent