Help us understand the problem. What is going on with this article?

【Unity】バックグラウンド動作時のキー入力取得

More than 1 year has passed since last update.

Unityがバックグラウンドで動いているとき,Inputクラスではキー入力を取得できません。

そこで,以下のリンクにあるパッケージを利用します。
英語ですが,使い方もほぼ書いてあります。
https://github.com/Elringus/UnityRawInput

サンプルソース

using UnityEngine;
using UnityRawInput;

public class RawKeyInputTest : MonoBehaviour
{
    public bool WorkInBackground;
    public bool InterceptMessages;

    private void OnEnable ()
    {
        RawKeyInput.Start(WorkInBackground);
        RawKeyInput.OnKeyUp += LogKeyUp;
        RawKeyInput.OnKeyDown += LogKeyDown;

    }

    private void OnDisable ()
    {
        RawKeyInput.Stop();
        RawKeyInput.OnKeyUp -= LogKeyUp;
        RawKeyInput.OnKeyDown -= LogKeyDown;
    }

    private void OnValidate ()
    {
        RawKeyInput.InterceptMessages = InterceptMessages;
    }

    private void LogKeyUp (RawKey key)
    {
        Debug.Log("Key Up: " + key);
    }

    private void LogKeyDown (RawKey key)
    {
        Debug.Log("Key Down: " + key);

        //Aが押されたら
        if (RawKeyInput.IsKeyDown(RawKey.A)) {
            print ("test");
        }
    }


}

よく使うと思うのはこの部分

        //Aが押されたら
        if (RawKeyInput.IsKeyDown(RawKey.A)) {
            print ("test");
        }

ここで特定のキーの入力を取得できます。
RawKey.取得したいキー のように書き,あとはキー入力で行いたい処理を書けばOKです。

neku
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away