こんにちわ、Unityエンジニアのオオバです。

Unityで開発している時に一度は目にするエラー
UnassignedReferenceExceptionの直し方を紹介します。

未設定オブジェクトをセット状態にすると直る

未設定オブジェクトがUnassignedReferenceExceptionの原因

【エラー】UnassignedReferenceExceptionの直し方_0

publicまたはSerializeFieldをつけた変数に
オブジェクトがセットされていないとこのエラーは発生します。

UnassignedReferenceExceptionの直し方

【エラー】UnassignedReferenceExceptionの直し方_1

このように未設定オブジェクトをなくすことで
エラー「UnassignedReferenceException」は直ります。

この記事の内容

UnassignedReferenceExceptionは設定ミス

UnassignedReferenceExceptionとは、
「参照未設定のエラー」です。

エラー文を分解すると
理解しやすいです。

このようにコンポーネントに設定されるべきオブジェクトが未設定であり
それを参照しようとした時にUnassignedReferenceExceptionは起きます。

UnassignedReferenceExceptionの原因を簡単に探る方法

コンソールのエラーをクリックしてみましょう。
するとエラーが起きているGameObjectを光らせて教えてくれます。

例:ClickedActionというGameObjectがエラーの原因

【エラー】UnassignedReferenceExceptionの直し方_2

覚えておきたいテクニックです。

UnassignedReferenceExceptionのパターン

エラーUnassignedReferenceExceptionの内容は
以下のテンプレートで表示されます。

【コンポーネント名】にエラーの起きたコンポーネント名、
【未設定変数名】に未設定の変数名が入ります。

UnassignedReferenceException: The variable _unitychan of  
【コンポーネント名】 has not been assigned.  
You probably need to assign the 【未設定変数名】 variable of  
the 【コンポーネント名】 script in the inspector.  

同じようなエラー内容がコンソールに表示された時は
本記事を参考に修正してみましょう。

エラー「UnassignedReferenceException」の直し方まとめ

この2つを覚えておけば、
もうUnassignedReferenceExceptionは怖くないです。

プログラミング初学者にとって
エラーは恐ろしいものです。

アプリは動かなくなるし、原因がわからない。

まずは落ち着いて、
エラーの文章コピペでググりましょう。

大抵のことは解決します。
本ブログはプログラミングをわかりやすく伝える
信条にしています。

これからもエラーの解決方法から
エラーの起きるプロセスを解説していきます。


フォローすると UIデザイナー力の上がるTwitter やってます!
今日から使えるテクニックを発信中。
ぜひフォローしてみてください!
👉フォローはこちら!

最後まで読んでいただきありがとうございました!
すばらしいUnityライフをお過ごしください。

オススメ記事
検証環境