Unity 6 での Input System の活用
目次
1. はじめに
Unity 6 では、新しい Input System のデフォルト設定として「Input System_Action」ファイルが初期から作成されています。これにより、従来のように手動で Input Action Asset を作成する必要がなくなりました。本資料では、デフォルトの Input System を活用する方法と、カスタム入力の追加手順を解説します。
2. Input System_Action ファイルの確認
- デフォルトの Input System_Action を確認
- Unity のプロジェクトウィンドウ (Project) を開きます。
Assets > Input System_Action
に既存のファイルがあることを確認します。
- アクションマップ (Action Maps) の内容を確認
- 初期設定では、以下のアクションマップが定義されています:
Player
(キャラクターの移動、攻撃、ジャンプなど)UI
(UI のナビゲーション、選択など)
- 既存のアクションをそのまま活用できるため、ゼロから設定する必要はありません。
- 初期設定では、以下のアクションマップが定義されています:
3. カスタム入力の追加
デフォルトの設定にカスタム入力を追加したい場合、以下の手順を行います。
3.1 新しいアクションの追加
Input System_Action
をダブルクリックしてエディタを開きます。Player
アクションマップを選択します。+ Add Action
ボタンをクリックし、新しいアクション (例: “CKey") を追加します。Binding
を設定し、Keyboard > C
を選択します。
3.2 スクリプトでカスタムアクションを使用
作成したカスタムアクションをスクリプトで利用するには、以下のように記述します。
using UnityEngine;
using UnityEngine.InputSystem;
public class Example : MonoBehaviour
{
public InputActionAsset inputActionAsset; // Inspector で設定
private InputAction cKeyAction;
private void Awake()
{
// "Player" アクションマップから "CKey" を取得
var actionMap = inputActionAsset.FindActionMap("Player");
cKeyAction = actionMap.FindAction("CKey");
}
private void OnEnable()
{
cKeyAction.Enable();
}
private void OnDisable()
{
cKeyAction.Disable();
}
void Update()
{
if (cKeyAction.WasPressedThisFrame())
{
Debug.Log("Cキーが押されました");
}
}
}
4. その他の入力検知方法
検知方法 | 説明 | 使用メソッド |
---|---|---|
一度だけ押された | フレーム単位でキー入力を取得 | WasPressedThisFrame() |
押し続けている | キーが押されている間、連続的に判定 | IsPressed() |
キーを離した瞬間 | キーを離した瞬間に検知 | WasReleasedThisFrame() |
if (cKeyAction.IsPressed())
{
Debug.Log("Cキーを押し続けています");
}
if (cKeyAction.WasReleasedThisFrame())
{
Debug.Log("Cキーを離しました");
}
5. まとめ
- Unity 6 では「Input System_Action」ファイルがデフォルトで用意されているため、新規作成の手間が不要。
- デフォルトのアクションマップ (Player, UI) を活用可能。
- カスタム入力を追加する場合は、「Input System_Action」にアクションを追加してスクリプトで制御する。
これにより、新しい Input System の導入がよりスムーズになり、開発の効率化が期待できます。
ディスカッション
コメント一覧
まだ、コメントがありません