しっぽを追いかけて

ぐるぐるしながら考えています

Unity と猫の話題が中心   掲載内容は個人の私見であり、所属組織の見解ではありません

Unity でカーソルキーでキャラを動かす

※ これは 2020/12/04 時点の Unity 2020.1.16f1 の情報です

最新版では動作が異なる可能性がありますのでご注意ください

とりあえず UI の並び替えはひと通り試せたので、今度は別の検証

新しい Unity の InputSystem で単にキャラを動かせるようにするという超基本的なところから始める

ねこを動かしたい

こんなドット絵のねこキャラを用意したのでこれをカーソルキーで動かしてみる

まずは新しい InputSystem の初期設定、これは以前やったのと同じ

https://www.matatabi-ux.com/entry/2020/11/05/100000

新しく URP のプロジェクトを作成し、InputSystem2D Sprite のパッケージをインポート、UnityEditor 再起動後に PlayerSettings の InputSystem 設定

次に Main CameraCat という GameObject を作成

Cat の Inspector の設定はこんな感じ

Cat のコンポーネント

Cat の Script は下記を作成

using UnityEngine;
using UnityEngine.InputSystem;

public class Cat : MonoBehaviour
{
    public void OnMove(InputAction.CallbackContext context)
    {
        var move = context.ReadValue<Vector2>();
        this.transform.Translate(move * 0.25f);
    }
}

Sprite Renderer は白ねこの Sprite を貼り付けただけ

Player Input は今回の本題で、新しい Input System を簡単に扱えるようにしてくれる便利クラス

このコンポーネントの追加直後にはこんな感じに「Create Actions」ボタンが表示されるのでこれを押下してデフォルトの Input Action Asset ファイルを作成して設定する

Create Action Asset

他は Default SchemeKeyboard&MouseDefault MapPlayerBehaviorInvoke Unity Events を指定して、Events の中の PlayerMoveイベントハンドラCat.OnMove を設定

これでカーソルキーの入力がとれるらしいのでお試し

カーソルキーで動かす

はい、とりあえず動いた!