跳转至

Box3InputEvent / GameInputEvent 输入事件

input 本意输入,在 Box3 中为输入事件,在玩家按动或松开按钮时触发

事件发生的时刻,即为玩家按下/松开按钮的同一刻。

由方法 Box3World.onPress,Box3World.onRelease,Box3Player.onPress,Box3Player.onRelease 触发

示例代码

world.onPress(({ button, entity, position, pressed, raycast, tick }) => {
  if (button == "action0") world.say(entity.player.name + "按下了左键");
  else if (button == "action1") world.say(entity.player.name + "按下了右键");
});

点击左键,将鼠标指针位置的方块替换为石头。点击右键,销毁方块。

world.onPress(({ button, raycast }) => {
  let pos = raycast.voxelIndex;
  if (button === "action0") {
    voxels.setVoxel(pos.x, pos.y, pos.z, "stone");
  } else if (button === "action1") {
    voxels.setVoxel(pos.x, pos.y, pos.z, "");
  }
});

事件参数

button : Box3ButtonType
玩家输入的按钮
entity : Box3Entity&object
指向按下/松开按钮的玩家
position : Box3Vector3
玩家按下/松开按钮的瞬间所在位置
pressed : boolean
如果为真,则事件为按下按钮,否则,为松开按钮。
raycast : Box3RaycastResult
按下/松开按钮的瞬间,从玩家视角投射的射线检测结果。
tick : number
按下/松开按钮的时间

评论区