Player Inputが上手く使えないと思ったら単純なミスだった
UnityEventを使用する場合、Eventに登録するスクリプトは、 そのInspectorビューから選択し、 スクリプトファイルそのものを入れないようにする
Player Inputは、Unityで`2019.1`から追加された、`Input`に取って変わる新しい入力管理システムです。 詳しくは[新しい Input System のご紹介 -- blogs.unity3d.com](https://blogs.unity3d.com/jp/2019/10/14/introducing-the-new-input-system/)を参照してください。
環境
| ソフトウェア | バージョン |
|---|---|
| Unity | 2019.4.11f1 Personal |
| Input System | 1.0.0 |
現状
基本的にはQuick Start Guideに沿って作業をしています。 (=Input System=は導入済とします。)
入力を反映させたい
GameObjectにPlayerInputをattachします。"Create Actions"を押し、新しい
Action Assetを作成します"Quick Start Guide"に従って、入力を
Unity Eventsで受けとるようにします。今回は必要なかったので、デフォルトで入っているActionを自分で使うものに入れかえました
1.のGameObjectに戻り、PlayerInputのEvents欄にScript fileを指定しますあれ!?
No Functionしか出てこない!?
原因
今回の原因は、上記の 5. にある Events欄に設定したもの でした。
ここで、私は「スクリプトファイル自体」を選択していましたが、そうではなく、「実際に使いたいオブジェクトに紐づけられている該当ファイルのインスタンスを渡してると、上手くいきます。
もう一つ考えられる原因
今回は違いましたが、調べている間に見つけたのがこれで、
「コールバック関数の引数は InputAction.CallbackContext callbackContext にしないといけない」
というもの。