simplestarの技術ブログ

目的を書いて、思想と試行、結果と考察、そして具体的な手段を記録します。

Unity:InputSystemのInputActionを使ってみた

前書き

まだ半年早いですが、これから作るゲームは新しい InputSystem で作っていきたいと思います。
ドキュメント読んで動作確認までできたので実装コードを記録しておきます。

以下、自問自答した内容です。

Input System の InputAction でキー押下イベントを利用

「スペースキーを押したらゲームオブジェクトの表示非表示を切り替えるコード実装見せて」

「以下の通りです」

PressSpaceKeyText.cs

using UnityEngine;
using UnityEngine.Experimental.Input;

public class PressSpaceKeyText : MonoBehaviour
{
    [SerializeField]
    GameObject menuPanel;
    [SerializeField]
    GameObject titlePanel;

    public InputAction inputAction;
    
    void Awake()
    {
        inputAction.performed += ctx => {
            menuPanel.SetActive(true);
            titlePanel.SetActive(false);
        };
    }

    public void OnEnable()
    {
        inputAction.Enable();
    }

    public void OnDisable()
    {
        inputAction.Disable();
    }
}

「なるほど、インスペクタの方で Space Key を指定する感じですね?
インスペクタビューを見せてください」

「こちらです」

f:id:simplestar_tech:20190106163115j:plain
上記スクリプトをアタッチしたオブジェクトのインスペクタ

「新しい Input System の導入方法は?」

※この記事を書いて数日後に Package Manager 経由でインストールできるようになりました

「以下の Git を Clone して、Packages フォルダの com.unity.inputsystem をコピーして Editor を再起動します。」
github.com

「OK、細かいところは Git のページを見よう」

おわりに

こういう、欲しい情報をピンポイントで答えてくれる AI ほしいなぁ