| この記事の要点 |
|
Unity のエラーに関する記事の入口ページです。主にスクリプト(C#)まわりのエラーを扱います。個別のエラーメッセージの解説は子ページから選んでください。このページでは、どのエラーにも共通する「読み方」「分類」「切り分け方」をまとめます。
Unity のエラーが出たときの調べ方
Unity のエラーは Console ウィンドウに出力されます。まず Console を開いてエラー文を確認し、メッセージで子ページや Unity 公式ドキュメントを検索するのが基本の流れです。
- Window → General → Console でコンソールを開く(ショートカットは Ctrl+Shift+C、Mac は Cmd+Shift+C)
- 赤いアイコンがエラー、黄色が警告、白が通常ログ。右上のボタンで種類ごとに表示を絞り込める
- エラー行をクリックすると下段にスタックトレースが出る。自分のスクリプト名と行番号が書かれた行を探す
- エラー行をダブルクリックすると、原因となったスクリプトの該当行がエディタで開く
- エラーメッセージの英文部分(変数名やオブジェクト名を除いた部分)で検索する
- コンパイル時に出るのか、Play 中だけ出るのか、特定の操作をしたときだけ出るのかを切り分ける
Console の便利な設定
- Clear on Play: Play 開始ごとにログを消す。前回のエラーと混ざらない
- Collapse: 同じメッセージをまとめて件数表示。毎フレーム出るエラーが見やすくなる
- Error Pause:
Debug.LogErrorや例外が出た瞬間に Play を一時停止。その時点の Hierarchy や Inspector を調べられる
エラーの種類でおおまかに分類する
| 種類 | 見分け方 | 特徴 |
|---|---|---|
| コンパイルエラー | error CS0246 のように「CS + 番号」が付く | スクリプトの構文・型の誤り。直すまで Play できない |
| 実行時エラー(例外) | NullReferenceException など「〜Exception」で終わる | Play 中に発生。その行以降の処理がそのフレームで止まる |
| 物理エンジン関連の警告 | Collider / Rigidbody の名前が含まれる | コンポーネントの組み合わせや設定値が原因(MeshCollider の警告など) |
| スクリプト連携・エディタ | 「script」「Behaviour」「missing」などを含む | イベント関数の引数不一致、スクリプトファイルの欠落、クラス名とファイル名の不一致など |
よく見るエラーと最初に疑う点
| メッセージ(抜粋) | 最初に疑う点 |
|---|---|
NullReferenceException: Object reference not set to an instance of an object | Inspector で変数にオブジェクトを割り当てていない、GetComponent / GameObject.Find が null を返している |
UnassignedReferenceException | public / [SerializeField] の変数が Inspector で未設定(None のまま) |
MissingReferenceException | 参照先の GameObject がすでに Destroy されているのに使っている |
IndexOutOfRangeException / ArgumentOutOfRangeException | 配列・List の要素数を超えた添字。Inspector で Size を設定し忘れていないか |
error CS0246: The type or namespace name '...' could not be found | using の書き忘れ、パッケージ未インストール、クラス名のタイプミス |
error CS1061: '...' does not contain a definition for '...' | メソッド名・プロパティ名の誤り(大文字・小文字も区別される)、古い API の使用 |
All compiler errors have to be fixed before you can enter playmode! | どこかにコンパイルエラーが残っている。Console をエラーだけに絞って確認 |
The referenced script on this Behaviour is missing! | アタッチしていたスクリプトファイルが削除・改名された。Inspector で Missing になったコンポーネントを付け直す |
| スクリプトをアタッチできない(クラスが見つからない旨のダイアログ) | ファイル名と MonoBehaviour を継承したクラス名が一致していない、またはコンパイルエラーが残っている |
共通する基本の対処
- エラーが出ている GameObject を Hierarchy で選択し、Inspector で変数の割り当てやコンポーネントの有無を確認する
- 該当スクリプトの
Awake/Start/Updateのどこで起きているかを切り分ける。AwakeとStartの実行順に依存した初期化は null の原因になりやすい Debug.Logで変数の中身を出力し、「どこまでは正しいか」を確かめる。第 2 引数に GameObject を渡すと、ログをクリックしたときにそのオブジェクトがハイライトされる- Unity のバージョンを確認する。古い記事の API はすでに非推奨・削除されていることがある
- コンパイルエラーは一番上のものから直す。1 つの誤りが後続の大量のエラーを生むことが多い
Console に出ない情報を確認する方法(ログファイル)
エディタが固まった、ビルドしたゲームだけで落ちる、といった場合はログファイルを見ます。
- Editor.log(エディタのログ): Windows は
%LOCALAPPDATA%\Unity\Editor\Editor.log、macOS は~/Library/Logs/Unity/Editor.log。Console 右上のメニューの「Open Editor Log」からも開ける - Player.log(ビルドしたゲームのログ): Windows は
%USERPROFILE%\AppData\LocalLow\会社名\製品名\Player.log。会社名と製品名は Player Settings の値
関連
- Unity Debug.Log 完全ガイド
- Unity の GetComponent 取得とキャッシュ
- Unity の衝突検知(Collision)
- Unity MonoBehaviour 完全ガイド
- Unity Scripting API(公式)
子ページ
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- プロジェクトをTomcatプロジェクトとして認識させる方法 2026-10-07 22:32:50
- MySQLの1366 Incorrect string value|Laravelの文字コード・絵文字エラー 2026-10-07 21:54:03
- curlの証明書ホスト名不一致|旧エラー51・現行60の確認と対処 2026-10-07 21:54:03
- LaravelのMassAssignmentException|fillableの原因と安全な対処 2026-10-07 21:54:03
- Eclipse で Tomcat の起動ログがコンソールに出ない時の確認手順 2026-10-07 21:54:02
- MySQLにおける中央値(Median)の導き方(バージョン8未満) 2026-10-07 13:49:45
- getInputForward 2026-10-07 13:41:15
- JSONから配列に変換 2026-10-07 13:41:15
- ビューから値をモデルに格納しコントローラーで受け取る方法 2026-10-07 13:23:41
- Laravelのテーブル作成と定義変更|マイグレーション・up/down・注意点 2026-10-07 13:23:41
- NumPy 配列に要素を追加する方法 (append / concatenate) 2026-10-07 13:23:41
- MariaDB・MySQLで現在日時を取得する方法|NOW・タイムゾーン・保存型 2026-10-07 13:13:36
- 【django】テンプレートで定数を使用する方法 2026-10-07 13:10:15
- Spring BootにおけるApplication.propertiesの環境依存設定の分割方法 2026-10-07 12:09:35
- Not supported for DML operations【Springエラー】 2026-10-07 11:09:38