交互

键盘

Galacean 支持开发者随时查询当前的键盘交互实况,且调用接口十分简单。

方法

方法名称方法释义
isKeyHeldDown返回这个按键是否被持续按住
isKeyDown返回当前帧是否按下过此按键
isKeyUp返回当前帧是否抬起过此按键

快速上手

下方枚举了检测按键状态的简单示例。

class KeyScript extends Script {
  onUpdate() {
    const { inputManager } = this.engine;
    if (inputManager.isKeyHeldDown(Keys.Space)) {
      // 现在还按着空格键
    }
    if (inputManager.isKeyDown(Keys.Space)) {
      // 这帧按下过空格键
    }
    if (inputManager.isKeyUp(Keys.Space)) {
      // 这帧抬起过空格键
    }
  }
}

实战

这次就用空格键来控制愤怒的小鸟吧。

状态字典

按键状态isKeyHeldDownisKeyDownisKeyUp
该键从上帧开始就一直按着truefalsefalse
该键当前帧按下后就没有松开truetruefalse
该键在当前帧松开后又按下truetruetrue
该键在当前帧按下后又松开falsetruetrue
该键在当前帧被抬起falsefalsetrue
该键没按下且没交互falsefalsefalse
不会出现这种情况truefalsetrue
不会出现这种情况falsetruefalse

Keys

Galacean 所枚举的键盘 Keys 与实体键盘一一对应,参考 W3C 标准,且兼容各种不同硬件的特制按键。

Keys 枚举:https://github.com/galacean/engine/blob/main/packages/core/src/input/enums/Keys.ts

W3C 标准:https://www.w3.org/TR/2017/CR-uievents-code-20170601/

键盘输入设计思路:https://github.com/galacean/engine/wiki/Keyboard-Input-design

最后更新于 七月 11, 2024

这篇文档对您有帮助吗?