1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[PlayCanvas]入力イベントの取得

Posted at

概要

キーボードやマウス、スマホのタッチ操作などのイベントを処理する機能。

実装例

マウス

mouse.js
var Mouse = pc.createScript('mouse');

Mouse.prototype.initialize = function() {
    this.app.mouse.on(pc.EVENT_MOUSEDOWN, this.mouseDown, this);
};

Mouse.prototype.mouseDown = function(event) {
    console.log("X: " + event.x.toString() + "Y: " + event.y.toString());
};

Mouse.prototype.update = function(dt) {
    // ホールドはupdateで取れる
    if( this.app.mouse.isPressed(pc.MOUSEBUTTON_LEFT) ){
        console.log("Pressing Left Mouse Button.")
    }
};

initializethis.app.mouseに実行したい処理とイベントのキーを渡す事で実装する。
もしくは、wasPressedupdateで呼び出して押されたかをチェックする事で実装もできる。(離した瞬間はwasReleased)

マウスボタンを押し続けている(ホールド)間に処理を実行したい場合はisPressedで状態を取れる。

Event 内容
pc.EVENT_MOUSEDOWN 押された時
pc.EVENT_MOUSEUP 離した時
pc.EVENT_MOUSEMOVE 移動した時
pc.EVENT_MOUSEWHEEL ホイールを動かした時

キーボード

keyboard.js
var Keyboard = pc.createScript('keyboard');

Keyboard.prototype.initialize = function() {
    this.app.keyboard.on(pc.EVENT_KEYDOWN, this.onKeyDown, this);
};

Keyboard.prototype.onKeyDown = function(event) {
    // event.keyにキーコードが入っている
    if( event.key === pc.KEY_A ){
        console.log( "Press A" );
    }
};

initializethis.app.keyboardに実行したい処理とイベントのキーを渡す事で実装する。
マウス同様、isPressedwasPressedがあるので、ホールドの検知やupdateでの記述が可能。

Event 内容
pc.EVENT_KEYDOWN 押された時
pc.EVENT_KEYUP 離した時

タッチ(スマホなど)

touch.js
var Touch = pc.createScript('touch');

Touch.prototype.initialize = function() {
    this.app.touch.on(pc.EVENT_TOUCHSTART, this.touchStart, this);
};

Touch.prototype.touchStart = function(event) {
    // event.touchesに画面に触れた場所の配列が入ってくる
    if( event.touches.length > 0 ){
        console.log("X: " + event.touches[0].x.toString() + "Y: " + event.touches[0].y.toString());
    }
};

initializethis.app.touchに実行したい処理とイベントのキーを渡す事で実装する。
タッチイベントはマウスとキーボードと違い、update内で検知を行う関数はない。

Event 内容
pc.EVENT_TOUCHSTART 触れた時
pc.EVENT_TOUCHEND 離した時
pc.EVENT_TOUCHMOVE スワイプされた時
pc.EVENT_TOUCHCANCEL 何かしらの理由で、タッチをキャンセルされた時
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?