docs.unity3d.com
    目次を表示する/隠す

    クイックスタートガイド

    ノート: 新しい Input System のインストール方法については、インストール を参照してください。

    • クイックスタートガイド
      • Input Device からの入力の直接取得
      • Input Action による入力の間接取得
        • ステップ 1: PlayerInput コンポーネントの追加
        • ステップ 2: Input Action の作成
        • ステップ 3: Action の応答の設定
      • 他の方法による Input Action の設定

    Input Device からの入力の直接取得

    スクリプトの作成をすばやく始める方法は、現在の状態を Input Device から直接読み取ることです。例えば、以下のコードでは、プレイヤーが最後に使用したゲームパッドを取得し、現在の状態を読み取ります。

    using UnityEngine;
    using UnityEngine.InputSystem;
    
    public class MyPlayerScript :MonoBehaviour
    {
        void Update()
        {
            var gamepad = Gamepad.current;
            if (gamepad == null)
                return; //ゲームパッドが接続されていません。
    
            if (gamepad.rightTrigger.wasPressedThisFrame)
            {
                //"Use" のコードをここに記述します。
            }
    
            Vector2 move = gamepad.leftStick.ReadValue();
            //"Move" のコードをここに記述します。
        }
    }
    

    他の Device タイプでも、同じアプローチ (Keyboard.current や Mouse.current など) を使用できます。

    Input Action による入力の間接取得

    Input Action (入力アクション) を使用して入力を間接的に取得するには、以下のステップに従います。

    1. PlayerInput コンポーネントを追加します。
    2. Action を作成します。
    3. Action の応答のスクリプトを記述します。

    ステップ 1: PlayerInput コンポーネントの追加

    入力を Input Device から直接取得する方法は手軽で便利ですが、Device のタイプごとに個別のパスが必要です。さらに、ゲーム内で特定のイベントをトリガーする Device Control を後で変更することが難しくなります。

    代わりに、Device と、その Device がゲーム内でトリガーする応答を仲介するものとして、Action を使用できます。これを実現する最も簡単な方法は、PlayerInput コンポーネントを使用することです。このコンポーネントを追加するには、GameObject (ゲームオブジェクト) のインスペクターで Add Component ボタンをクリックします。

    Player Input コンポーネントの追加

    ステップ 2: Input Action の作成

    各 PlayerInput コンポーネントは、ゲーム内の 1 人のプレイヤーを表します。入力を受け取るには、コンポーネントが一連の Input Action に関連付けられている必要があります。新しい Action セットを作成する最も簡単な方法は、コンポーネントのインスペクターのウィンドウで Create Actions… ボタンをクリックすることです。これにより、Input Action Map、Input Action 、Input Binding のデフォルトセットが事前設定されたアセットが作成されます。

    Player Input コンポーネントからの Action の作成

    Create Actions ボタンをクリックすると、Unity から、新しいアセットの作成場所を指定するように求められます。プロジェクトの Assets フォルダー内のフォルダーとファイル名を選択し (または、デフォルトの名前を受け入れ)、Okay を選択します。これにより、新しい .inputactions アセットがプロジェクトで作成され、PlayerInput コンポーネントに接続されて、.inputactions ファイルのエディターのウィンドウが表示されます。

    MyGameActions

    プロジェクトのニーズに合わせてデフォルトセットを編集できます。ウィンドウの使用方法については、Action エディター の詳細なドキュメントを参照してください。

    ステップ 3: Action の応答の設定

    コンポーネントに Action を含めたら、各 Action の応答を設定する必要があります。PlayerInput では、インスペクターのウィンドウで Behavior (動作) プロパティを使用して、いくつかの方法で応答を設定することができます。

    PlayerInput の通知動作

    オプションの詳細については、通知動作 に関するドキュメントを参照してください。上のスクリーンショットで選択されている Invoke Unity Events では、Unity UI と同じ方法で UnityEvent が使用されます。Unity では、コンポーネントに関連付けられている Action ごとにイベントが表示されます。これを通じて、各イベントのターゲットメソッドを直接指定できます。

    PlayerInput の Action のイベント

    各メソッドは InputAction.CallbackContext 引数を受け取ります。これを使用して、Action をトリガーした Control および Action の値にアクセスすることができます。詳細については、Action のコールバック に関するドキュメントを参照してください。

    public class MyPlayerScript :MonoBehaviour
    {
        public void Fire(InputAction.CallbackContext context)
        {
            Debug.Log("Fire!");
        }
    }
    

    これで、PlayerInput を使用する基本的な設定が完了します。

    他の方法による Input Action の設定

    Input Action を設定する方法は PlayerInput 以外にもあります。詳細については、Action の作成 に関するドキュメントを参照してください。

    トップに戻る
    Copyright © 2023 Unity Technologies — 商標と利用規約
    • 法律関連
    • プライバシーポリシー
    • クッキー
    • 私の個人情報を販売または共有しない
    • Your Privacy Choices (Cookie Settings)