スポンサーリンク
エラー・トラブルシューティング

Unity6で新Input Systemが動かない時の対処法【原因別チェックリスト付き】

エラー・トラブルシューティング

Unity6にアップデートした、もしくは新規プロジェクトで新Input Systemを使い始めたのに、
「キーを押しても何も起きない」「PlayerInputを設定したのに反応しない」
そんな状況で止まっていませんか?

チュートリアル通りに設定したはずなのに入力が一切効かないと、
「自分のコードが悪いのかな…」「Input Systemって難しすぎるのでは?」と不安になりますよね。

でも安心してください 🙂 Unity6で新Input Systemが動かない原因は、実はかなりパターン化されています。

多くの場合、

  • プロジェクト設定(Active Input Handling など)
  • Input Actionアセットの紐付け忘れ
  • PlayerInputやEventSystemの設定ミス

といった「コード以前の設定や構成」で止まっているケースがほとんどです。

この記事では、Unity6環境において新Input Systemが動かないときに、

  • なぜ入力が反応しないのか
  • どこから順番に確認すればいいのか
  • 旧Input Managerとどう付き合えばいいのか

を、原因別・チェックリスト形式で整理して解説していきます。

「とりあえず色々触ってみる」ではなく、
自分で原因を切り分けて、確実に直せる状態を目指す構成になっているので、
今まさに入力が動かず困っている人ほど、順番に読み進めてみてください。


結論:Unity6でInput Systemが動かない原因はここに集中する

先に結論からお伝えします。

Unity6で新Input Systemが動かない原因のほとんどは、コードではありません。
多くのケースは、次のいずれかに集約されます。

  • Active Input Handling の設定ミス
  • Input Actionアセットが正しく紐付いていない
  • PlayerInput・EventSystem・Control Schemeの不整合

つまり、

「スクリプトを書く前の設定・構成段階で止まっている」
これがUnity6のInput Systemトラブルで一番多いパターンです。

特にUnity6では、

  • Input Actionを作っただけでは使えない
  • 旧Inputと新Inputの関係が分かりづらい
  • UI・Player・入力が別コンポーネントに分かれている

といった理由から、「どこが原因なのか分からない」状態に陥りやすくなっています。

そこでこの記事では、

  • ① 設定(プロジェクト全体)
  • ② コンポーネント・実装
  • ③ 旧Inputとの互換性

という上から順に確認すれば必ず原因に辿り着く流れで解説していきます。

もし今、

  • 「キー入力が一切反応しない」
  • 「PlayerInputを付けたのにイベントが呼ばれない」
  • 「旧Inputのコードだけ動かない」

といった状況でも大丈夫です。

次の章から、まずは一番詰まりやすい「設定編」を確認していきましょう。




【実装・コンポーネント編】設定は合っているのにInput Systemが動かない時

ここまでの設定をすべて確認して問題がなければ、
次に疑うべきはコンポーネント同士の噛み合わせです。

Unityの新Input Systemは、

  • Input Action
  • PlayerInput
  • EventSystem
  • Control Scheme

といった複数要素が連携して動きます。
そのため、どれか一つでもズレていると入力が完全に止まるのが特徴です。


Control Schemeが原因で入力が無視されているケース

まず確認してほしいのが Control Scheme です。

Input ActionエディターでControl Schemeを作成している場合、
対応するデバイスが登録されていないと入力は一切反応しません。

よくあるミスは次のようなケースです。

  • Control Schemeはあるが、Deviceが空
  • Keyboard操作なのにGamepad用Schemeが有効
  • Auto-Switchをオフにしていることを忘れている

特に「何も反応しない」場合は、
Control Schemeが存在するだけで、逆に入力を遮断していることもあります。

不要なControl Schemeは一度削除するか、
Keyboard / Mouseなど必要なデバイスが正しく登録されているかを確認してください。


PlayerInputが動かない時に必ず見るべき3つのポイント

PlayerInputを使っているのに反応しない場合、
次の3点はほぼ確実にチェックしてください。

  • Actions に正しい Input Action が設定されているか
  • Behavior とスクリプト側の受け取り方が一致しているか
  • 同一シーン内に 複数のPlayerInput が存在していないか

特に多いのが、
Behaviorが「Send Messages」なのにメソッド名が違うケースです。

例えば OnMove が呼ばれると思っていたのに、
実際には OnMove(InputValue value) が必要だった、というようなズレですね。

また、UI用に追加したPlayerInputが裏で入力を奪っている、
というケースも意外とよくあります。


UIだけ反応しない場合はEventSystemを疑う

「キャラクター操作はできるのに、UIボタンだけ反応しない」
そんな場合は、ほぼ間違いなくEventSystem周りが原因です。

Unity6+新Input Systemでは、

  • Input System UI Input Module を使う
  • Standalone Input Module は使わない

という前提があります。

古いプロジェクトやテンプレートを流用していると、
EventSystemに Standalone Input Module が残ったままになっていることがあります。

この状態だと、
UI入力が完全に無効化されるので注意してください。

UIまわりのトラブルについては、
次の記事もあわせて確認すると切り分けがスムーズです。

ここまでで、
「設定は合っているのに動かない」問題の大半は解消できるはずです。

次は、旧Input(Input Manager)との関係について整理していきましょう。




【旧Inputとの関係】Input.GetKeyが動かない/併用したい場合

Unity6で新Input Systemを有効にしたあと、

  • Input.GetKey が反応しなくなった
  • 昔のコードだけ動かない
  • 新旧どちらを使うべきか分からない

と悩む人はとても多いです。

この章では、
旧Input Managerと新Input Systemの関係を整理しながら、
現実的な対処法を解説します。


Unity6で旧Input Managerはどう扱われているのか

Unity6では、従来の Input ManagerInput.GetKey など)は
非推奨(deprecated)として扱われています。

ただし、「今すぐ使えなくなる」という意味ではありません。

あくまで、

  • 新規開発では新Input Systemを推奨
  • 既存プロジェクトは段階的に移行してほしい

という公式の方針に近い位置づけです。

そのため、
既存コードが大量にある場合は、無理に一気に移行する必要はありません。


新旧Inputを併用するなら「Both」設定が必須

旧Inputと新Inputを同時に使いたい場合、
Active Input Handling を「Both」に設定する必要があります。

この設定を忘れると、

  • 新Inputは動くが旧Inputが死ぬ
  • またはその逆

といった分かりづらい状態になります。

ただし注意点もあります。

  • プラットフォームによっては非推奨・非対応になる場合がある
  • 特にモバイルやWebGLでは挙動差が出やすい

そのため、
「当面は併用 → 徐々に新Inputへ移行」という考え方が現実的です。


最低限ここだけ押さえる旧Input→新Inputの置き換え例

「Input Actionまで全部作るのは大変…」という場合でも、
新Input Systemではコードだけで入力を取得する方法も用意されています。

代表的な置き換え例は次の通りです。

  • Input.GetKey(KeyCode.W)Keyboard.current.wKey.isPressed
  • Input.GetKeyDown(KeyCode.Space)Keyboard.current.spaceKey.wasPressedThisFrame
  • Input.mousePositionMouse.current.position.ReadValue()
  • Input.GetMouseButtonDown(0)Mouse.current.leftButton.wasPressedThisFrame

このように、

「今すぐ全面移行しなくても、新Inputは使える」

という点を知っておくだけでも、心理的なハードルはかなり下がります。

次は、環境によって起きやすい入力トラブルを整理していきましょう。




プラットフォーム別で起きやすいInput Systemの罠

ここまでの内容で、
Unityエディタ上では入力が動くようになった人も多いと思います。

ただし、ビルド先のプラットフォームによっては、別の罠が待っていることがあります。

この章では、特に質問やトラブル報告が多い
WebGL と モバイル(Android / iOS)を中心に注意点を整理します。


WebGLで入力が不安定・反応しない場合

WebGLでは、新Input Systemの設定によって
「エディタでは動くのに、ブラウザだと反応しない」という現象が起きやすいです。

特に確認してほしいポイントは次の3つです。

  • Default Control Scheme が正しく設定されているか
  • Auto-Switch が無効になっていないか
  • Control Schemeがブラウザ入力(Keyboard / Mouse)に対応しているか

WebGLでは、
フォーカスがCanvasや画面に当たっていないと入力を拾えないこともあります。

「最初のクリック後から反応する」「一度外をクリックすると効かなくなる」
といった挙動は、WebGLではよくある現象なので、
不具合と勘違いしないようにしましょう。


モバイル(Android / iOS)での注意点

モバイル環境では、
キーボード入力前提の設計がそのまま使えない点に注意が必要です。

よくある原因は次の通りです。

  • Touch入力用のActionを作っていない
  • Supported DevicesにTouchscreenが含まれていない
  • Auto-Switchをオフにしている

また、
シンプルなタッチ操作だけであれば、
旧Input Managerの方が実装しやすいケースも正直あります。

そのため、

  • 複雑な入力 → 新Input System
  • 単純なタップ・スワイプ → 状況次第で旧Input

といった使い分けの判断をするのも、決して間違いではありません。

次は、初心者が特にハマりやすい誤解ポイントをまとめます。




よくある誤解・ハマりポイントまとめ

Unity6の新Input Systemは高機能ですが、
そのぶん「分かっていないと必ずハマるポイント」もはっきりしています。

ここでは、これまでに多く見てきた
初心者〜中級者が特に勘違いしやすいポイントをまとめます。


Input Actionを作った=もう使えている、は誤解

Input Actionアセットは、
作成しただけでは何も起きません。

Project-wide Actions や PlayerInput に紐付いて、
はじめて入力が流れてきます。

「Actionはあるのに反応しない」場合、
コードを疑う前に紐付け先を必ず確認しましょう。


コードが原因だと思い込むと遠回りする

入力が反応しないと、
ついスクリプトを書き直したくなりますが、
実際には設定ミスの方が圧倒的に多いです。

特に新Input Systemでは、
コード以前に「受け取る準備」ができていないケースが頻発します。

まずは、

  • Active Input Handling
  • Input Actionの紐付け
  • PlayerInput / EventSystem

この3点を冷静にチェックしてから、
コードに戻るようにしましょう。


Input Systemは難しいのではなく「構造を知らないだけ」

「Input Systemは難しい」「初心者向けじゃない」
そう感じる原因の多くは、
全体構造を知らないまま部分的に触っていることです。

入力の流れをシンプルにすると、

  • デバイス → Action → PlayerInput / UI

という一本道になっています。

この流れを意識できるようになると、
「どこで止まっているか」を自分で判断できるようになります。

次は、Input Systemでつまずきやすい人向けに、
学習を一段深めるための選択肢を紹介します。




学習を一段深めたい人向け(Input Systemで詰まらなくなるために)

ここまで読んで、

  • 「今回は直ったけど、また同じところで詰まりそう」
  • 「Input Systemの全体像がまだあやふや」

と感じた人もいるかもしれません。

正直なところ、新Input Systemは

断片的な知識だけだと、トラブルが何度も再発しやすい

という特徴があります。

設定・Action・PlayerInput・UIの関係を
一度きちんと「体系」で理解しておくと、
今回のような「動かない問題」にほぼ悩まなくなります。


体系的に理解したい人におすすめの書籍

Input Systemを含めたUnityの入力・設計・実装を
まとめて整理したい人には、書籍でのインプットもかなり効果的です。

特に次の2冊は、
「なぜそうするのか」まで含めて理解しやすく、
Input Systemで迷子になりやすい人と相性がいいです。

Unityゲーム プログラミング・バイブル 2nd Generation
✅ Amazonでチェックする✅ 楽天でチェックする

この本は、
Unity全体の設計・入力・処理の流れを俯瞰できるのが強みです。

「Input Systemだけでなく、ゲーム全体の作りを理解したい」
という人に向いています。

Unityの教科書 Unity 6完全対応版
✅ Amazonでチェックする✅ 楽天でチェックする

こちらは、
Unity6環境での基本〜実践までを順序立てて学べる構成なので、

  • Unity6に上げたばかり
  • Input System含めて基礎を整理し直したい

という人に特におすすめです。

もちろん必須ではありませんが、
「毎回ググって直す状態」から抜け出したい人には、
一度体系的に学ぶ価値は十分あります。




まとめ

今回は、Unity6で新Input Systemが動かないときの対処法を、
原因別に順を追って整理してきました。

もう一度、重要なポイントを振り返ってみましょう。

  • 多くの原因はコードではなく設定や構成にある
  • まずは Active Input Handling を最優先で確認する
  • Input Actionは作っただけでは使われない
  • PlayerInput・EventSystem・Control Schemeの噛み合わせが重要
  • 旧Inputは「Both」設定で併用できるが、将来的な移行は意識する

新Input Systemは、
最初はやや複雑に感じますが、

「どこで入力が止まっているか」を切り分けられるようになると、実はかなり扱いやすい仕組み

になります。

「動かない=難しい」と感じたときほど、
コードを疑う前に設定・構成を一つずつ確認するクセをつけてみてください。

Input System以外でも、Unityで「原因が分からず詰まる」場面はよくあります。
そんなときは、次の記事もあわせて参考になるはずです。


参考文献


よくある質問(FAQ)

Q
PlayerInputを使わずに新Input Systemは使えますか?
A

はい、使えます。

Input Actionをコードから直接参照したり、
Keyboard.currentMouse.current を使った取得方法も用意されています。

小規模なプロジェクトや、
旧Inputからの段階的な移行では、
あえてPlayerInputを使わない選択も十分アリです。

Q
旧Input(Input.GetKey)はいつまで使えますか?
A

Unity6時点では、
旧Inputは非推奨ではあるものの、すぐに削除されるわけではありません。

ただし、新機能や一部プラットフォームでは
サポート対象外になる可能性があるため、

新規開発は新Input Systemを前提にする

のが安全です。

Q
Input Systemは初心者には難しすぎませんか?
A

最初は難しく感じやすいですが、
それは構造を知らないまま触ってしまうからです。

入力の流れ(デバイス → Action → 受け取り先)を理解できれば、
むしろ旧Inputよりも柔軟で安全に扱えるようになります。

今回の記事をチェックリスト代わりに使いながら、
一つずつ確認していけば、確実に慣れていけますよ 🙂

※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。

※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。

スポンサーリンク