1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Unity エディタで再生したときに謎の NullReferenceException が出る

Last updated at Posted at 2023-02-06

現象

  • エディタで実行(再生)した際に以下のようなエラーが出ます。
    • 示されている発症ポイントがプロジェクト内でなく、どこで何が起きたのか解りません。
NullReferenceException: Object reference not set to an instance of an object
UnityEditor.PropertyEditor.DrawEditors (UnityEditor.Editor[] editors) (at <~>:0)
UnityEditor.PropertyEditor.RebuildContentsContainers () (at <~>:0)
UnityEditor.InspectorWindow.RedrawFromNative () (at <~>:0)

環境

  • Unity 2021.3.18f1 (LTS)
  • Windows 11

条件

  • シーンに、uGUI (UnityEngine.UI)を継承したコンポーネントがある。
    • CustomEditorなどのエディタ拡張を行っていなくても該当するようです。
  • 当該コンポーネントがアタッチされたGameObject複数のインスペクタで開いている。

回避方法

  • エディタの何処かで複数のインスペクタが開いていますので、1個を残して閉じてください。
  • 懸案のオブジェクト以外でLockされているインスペクタは閉じなくても支障ありません。

原因

  • エラーの内容にInspectorWindowPropertyEditorとあるので、インスペクタが原因のようです。
    • 継承されたコンポーネントのインスペクタを複数同時に表示していると(、それらの開いているオブジェクトが異なっても)、再生時にエラーします。
  • 継承の仕方とか、カスタムエディタの作りとか、色々試行錯誤したのですが、解決には至りませんでした。

参考

  • tetr4lab.
    • Unityで次のようなエラーが出たのですが、どのような原因が考えられますか?
  • ChatGPT
    • このエラーは、オブジェクトがインスタンス化されていないまま、Unity Editorのプロパティエディターにアクセスしようとした場合に発生することがあります。可能性のある原因は、以下の通りです。
      • シーン内のオブジェクトが削除された場合、オブジェクトへの参照が残っているとこのエラーが発生することがあります。
      • スクリプトで必要なオブジェクトの参照を設定していない場合、または誤った参照を設定している場合にも、このエラーが発生することがあります。
      • Unity Editorのプロパティエディターを操作する際に、Unity Editor自体の不具合が原因でこのエラーが発生することがあります。
    • このエラーを修正するには、まず可能性のある原因を確認して、問題を特定します。その後、不足している参照を設定したり、不要な参照を削除したり、Unity Editorを再起動したりすることで、問題を解決できる場合があります。
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?