Unity 基本操作ガイド: Input System(Player Input)

この画像は、Unityの Player Input コンポーネントの設定画面を示しています。Player Input は、Unityの新しい Input System を使用して、プレイヤーからの入力(キーボード、マウス、ゲームパッド、タッチなど)を処理するためのコンポーネントです。以下に詳細を説明します。


1. Player Input の役割

Player Input コンポーネントは、Input System を簡単に統合するための便利なツールです。これを使用することで、プレイヤーの入力をスクリプトで手動処理するのではなく、Input Actions(入力アクション)を使って整理された方法で入力を処理できます。


2. インターフェースの要素説明

① Actions

  • 現在の設定: AssetsOnly (Input Action Asset)
    • ここでは、使用する Input Action Asset を指定します。Input Action Asset は、UnityのInput Systemで入力アクションを定義するアセットです。
    • 右側のサークルアイコンをクリックすると、プロジェクト内の別のInput Action Assetを選択できます。

② Default Scheme

  • 現在の設定: <Any>
    • 使用する入力スキーム(入力デバイスの種類)を指定します。
    • <Any>:
      • すべての入力デバイス(キーボード、ゲームパッド、タッチなど)が使用可能になります。
    • 特定のスキーム:
      • キーボードのみ、ゲームパッドのみなど、特定の入力デバイスに限定することができます。

③ Auto-Switch

  • チェックボックス(オン)
    • 入力デバイスが変更されたとき(例: キーボードからゲームパッドへの切り替え)に、自動的に適切なスキームに切り替えるかどうかを指定します。
    • オンの場合、ユーザーの入力方法に応じてスムーズにスキームを切り替えます。

④ Default Map

  • 現在の設定: Player
    • Input Action Asset 内で使用する アクションマップ を指定します。
    • アクションマップは、入力アクションをグループ化するためのもので、例えば「Player」「UI」「Vehicle」など、状況に応じた入力の切り替えが可能です。

⑤ UI Input Module

  • 現在の設定: None (Input System UI Input Module)
    • Unity UI(ユーザーインターフェース)と連携するための Input System UI Input Module を指定します。
    • これを設定すると、ボタンやスライダーなどのUI要素を新しいInput Systemを通じて操作できるようになります。

⑥ Camera

  • 現在の設定: None (Camera)
    • プレイヤー入力と連携するカメラを指定します。これにより、特定のカメラの視点に基づいて入力処理を行うことが可能になります。
    • 例: 一人称視点ゲームで、カメラの方向を基準にキャラクターを動かす場合。

⑦ Behavior

  • 現在の設定: Send Messages
  • プレイヤー入力を処理する方法を指定します。
  • オプション:
    • Send Messages:
    • 入力イベントを SendMessage() を使ってスクリプトに通知します(古いUnity APIと互換性があります)。
    • Unity Events:
    • Input System の Unity Events を使用して、特定の入力に対応するイベントをトリガーします(推奨されるモダンな方法)。
    • Invoke C# Events:
    • C#イベントを直接使用して入力を処理します。

⑧ 入力イベントリスト

  • リストに表示されているイベント:
    • 現在の設定(Send Messages)の場合、以下のような入力イベントが発生することが記載されています。
      • 例: OnMove, OnFire, OnClick など。
    • これらは、特定の入力が発生したときに呼び出されるメソッドを表します。スクリプトでこれらを実装することで、動作をカスタマイズできます。

⑨ Open Input Settings ボタン

  • 入力設定を開く:
    • UnityエディターのInput System設定を直接開きます。ここでプロジェクト全体の入力設定を管理できます。

⑩ Open Input Debugger ボタン

  • 入力デバッガーを開く:
    • 現在の入力状態(接続されているデバイス、アクションの状態など)をリアルタイムで確認できる Input Debugger を開きます。

3. 具体的な使用例

  • 移動とアクションの設定:
    • Input Action Asset 内で、「Move」「Fire」などの入力アクションを設定し、それらをPlayer Inputに割り当てます。
    • 例: WASDキーで移動し、マウスクリックで発射するゲーム。
  • UI操作の統合:
    • UI Input Module を設定し、Input Systemを使用してボタンやスライダーなどのUI要素を操作可能にします。
  • マルチデバイス対応:
    • Auto-Switch をオンにしておけば、キーボードやゲームパッドなど、プレイヤーの選択したデバイスに自動的に切り替えることが可能です。

4. 注意点

  • 古いInput Managerとの互換性:
    • Player Input は、新しい Input System 専用のコンポーネントです。古いInput Managerとは併用できないため、プロジェクトの入力設定を確認してください。
  • Send Messages の制限:
    • SendMessage メソッドは柔軟性に欠けるため、可能であれば Unity Events や C# Events を使用することを検討してください。
  • Input Action Assetの設定:
    • Input Action Asset が正しく設定されていないと、Player Input が期待通りに動作しません。事前にアセットを作成し、アクションマップやバインディングを適切に設定してください。

このコンポーネントは、新しいInput Systemを簡単に利用するための強力なツールです。特に複雑な入力設定を扱う場合や、複数の入力デバイスに対応するゲームで役立ちます。

Unity

Posted by hidepon