facebook twitter hatena line email

Unity/Csharp/キー入力/InputSystem

提供: 初心者エンジニアの簡易メモ
2021年11月9日 (火) 21:31時点におけるAdmin (トーク | 投稿記録)による版 (InputActionのサンプル)

移動: 案内検索

InputSytemとは

文字入力やマウスやゲームパッドなどのプラグイン

インストール

PackageManagerからRegistoryを選択して、"Input System"で検索して、Input Sytemをインストール。 今回は、ver1.0.2でした。

競合プラグイン

  • InputManager(旧
  • InputSystem(新

新旧があり、どちらかを指定することができる。

Unityメニュー/Edit/Project Setting/Player/Configuration

サンプル

using UnityEngine;
using UnityEngine.InputSystem;

public class SampleScene : MonoBehaviour
{
    void Update()
    {
        if (Keyboard.current.spaceKey.wasPressedThisFrame)
        {
            Debug.Log("space key");
        }
        if (Mouse.current.leftButton.wasPressedThisFrame)
        {
            Debug.Log("mouse down");
        }
        // キーボードのa
        if (Keyboard.current[Key.A].wasPressedThisFrame)
        {
            Debug.Log("A down");
        }
        /*
        if (Gamepad.current.buttonEast.isPressed)
        {
            Debug.Log("game pad o button");
        }
        */
    }
}

参考:https://gamedev65535.com/entry/unity_inputsystem_howtouse/

参考:https://gametukurikata.com/basic/inputsystem

InputAction登録

  1. Assetsでcreate/Input Actionsを選択する
  2. newControlsができるのでMyControlsへ変更
  3. Edit assetを選択
  4. 左上のschemaでnew schemaを選択してKeyBoardを選択
  5. ActionMapsはPlayerとする
  6. ActionsはFireとする
  7. Actionsの+を選択し、
  8. pathでSpace keyboardを選択する

InputActionのサンプル

  1. GameObjectを作成し、AddComponentからPlayInputを選択
  2. PlayerInputのActionsにMyControlsをドラッグ

InputActionのとり方。

PlayerInput actionInput = GameObject.Find("PlayerInput").GetComponent<PlayerInput>();
InputActionAsset actions = actionInput.actions;
InputAction action = actionInput.actions["Fire"];

参考:https://tsubakit1.hateblo.jp/entry/2019/01/09/001510

参考:https://gametukurikata.com/basic/inputsystem