めも

主にUnity

UnityのInputSystemの使い方

間違ってるかも。

  • PackageManagerからInputSystemを入れる

f:id:mikomon:20210910095049p:plain

  • VisualStudioからAPIにアクセスできるように、赤枠のチェックボックスがチェックされていることを確認。

f:id:mikomon:20210910095343p:plain

  • InputActionAssetを作る。

Projectからでも作れるが、以下の方法で行うと参考になる。空のGameObjectにPlayer Inputコンポーネントをつけ、Create Actions...する。
f:id:mikomon:20210910150936p:plain
その後そのGameObjectは削除して良い。

  • 必要に応じて編集する。

f:id:mikomon:20210910151141p:plain
Action Mapが操作対象、Actionが操作で、その下位のものが操作に使う手法、その下位が(あるなら)実際のキーにになると思われる。

  • Project Settings → Input System Package で設定ファイルを作っておく。何もいじらなくて良い。
  • スクリプトを作る。
[SerializedField]
private InputActionAsset inputActionAsset;
[SerializedField]
private string moveActionName = "Move";
private InputAction moveAction;

private void Start(){
    moveAction = inputActionAsset[moveActionName];
    moveAction.Enable();//これがないと動かないよう?
}

private void Update(){
    var vec2 = moveAction.ReadValue<Vector2>();
    transform.position += new Vector3(vec2.x, vec2.y, 0f);//などなど
}