Input System は現在プレビュー版として公開されており、Unity 2019.1 からご使用いただけます。この新しいシステムは、すべてのデバイスとプラットフォームで使いやすさを実現することに重点を置いて開発されています。パッケージマネージャー経由でインストールしていただけます。ぜひご試用になって、フォーラムからフィードバックをお寄せください。
Unity の現行のビルトイン入力管理システムは、Unity が現在のように多数のプラットフォームやデバイスに対応する以前に設計されたものです。このシステムに関しては、長年にわたって使用されて来た中で、その使い勝手があまり良くなく、時として(実行ファイルが起動してからコントローラーを接続するなどの)単純なケースにさえ対応が困難な場合もあることが明らかになっていました。このため Unity では、完全に書き直した新しいシステムの作成を進めてきました(現段階では、現行の Input Manager の廃止時期は決定していません)。
新しい Input System は「使いやすさ」「すべての対応プラットフォームにわたる一貫性」「柔軟性」を念頭に置き、根本から再構築されています。ぜひこれをご試用になって、Unity 2020.1 との同時公開に先駆けて、フィードバックをお寄せください。本システムはバージョン 2019.1 以降の Unity であればご使用いただけます。
新しい Input System のワークフローは「すべてのプラットフォームで機能する単純なインターフェースを」中心に据えた設計になっています。また、簡単に拡張してカスタムのデバイスや将来登場するデバイスに対応させることができます。
Action(アクション)を軸にしたワークフローは、ゲームコードが反応する論理的な入力とユーザーが行う物理的なアクションとを分離する形で設計されています。専用のエディター内(またはスクリプト内)で Action を定義し、それを抽象的な入力と具体的な入力の両方(例えば Device《デバイス》の主要なアクションとマウスの左ボタンなど)に結び付けることができます。
Input System の PlayerInput コンポーネントを使用すると、入力アクションを特定のゲームオブジェクトに紐付け、アクションへの反応を記述することができます。これはゲーム内の何人のプレイヤーにでも使用できます。
以下のスクリプトで、アクションが実行された時にコールバックを取得できます。
public void OnMove(InputValue value) { m_Move = value.Get(); } public void OnLook(InputValue value) { m_Look = value.Get (); } public void OnFire() { SpawnProjectile(); }
この新しいシステムがサポートできるデバイスの数や種類に制限はありません。またデバイスの変更に関する通知も可能なので、ランタイムで新しいデバイスに適切に対応することができます。
コンソール向けの開発には追加パッケージのインストールが必要です。追加パッケージは、(通常 Unity インストーラーをご提供している)各コンソール専用フォーラムから取得していただけます。詳細は サポートされている Input Device(入力デバイス)のリストをご覧ください。
Input System は拡張可能な形で開発されており、API によって、新しいデバイスに対応したり独自の Interaction(インタラクション)や Input Processor(入力プロセッサー)が設計できるだけでなく、カスタムの Binding(バインディング)セットアップの設計も可能になっています。また本パッケージは、内部構造を確認したい方のために完全なソースコードを含んでおり、GitHub 上で開発されています。
バージョン 2019.1 以降の Unity でパッケージマネージャーを開き、Advanced メニューから「Show Preview Packages」を有効にしてください。「All Packages」のリストに「Input System 」が表示されます。詳細パネルの右上にある「Install」をクリックしてください。現行のバージョンは 1.0-preview です。現在 Unity では、本パッケージを Unity 2020.1 で検証済みにすべく取り組みを進めています。それ以降に、新しい機能を追加してゆく予定です。
「新しい Input System バックエンドを有効にする必要がある」という旨の警告メッセージが表示された場合は、「Yes(はい)」をクリックしてエディターを再起動すれば解決され、使用を開始していただける状態になります。
ご使用に際してはクイックスタートガイド(英語)をぜひご利用ください。また、パッケージマネージャーから各種サンプルのインストールも可能となっています。皆様のフィードバックを、ぜひフォーラムからお寄せください。また GitHub レポジトリにて開発状況もご確認いただけます。