「Unity/Csharp/Exception/NullReferenceException」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→NullReferenceException発生) |
(→SerializeFieldで、NullReferenceException発生) |
||
行49: | 行49: | ||
参考:https://bluebirdofoz.hatenablog.com/entry/2022/09/18/234745 | 参考:https://bluebirdofoz.hatenablog.com/entry/2022/09/18/234745 | ||
+ | ==GameObject.Findで、NullReferenceException発生== | ||
+ | GameObject.Findで存在しない、オブジェクト名を入れると、NullReferenceExceptionが発生する。 | ||
− | Object reference not set to an instance of an object | + | 詳細エラー |
+ | <pre> | ||
+ | NullReferenceException: Object reference not set to an instance of an object | ||
+ | </pre> | ||
+ | サンプル | ||
+ | <pre> | ||
+ | public class NullReferenceExceptionScene : MonoBehaviour | ||
+ | { | ||
+ | void Start() | ||
+ | { | ||
+ | GameObject go = GameObject.Find("test"); | ||
+ | Debug.Log(go.name); | ||
+ | } | ||
+ | } | ||
+ | </pre> |
2023年10月17日 (火) 18:20時点における版
目次
SerializeFieldで、NullReferenceException発生
以下SerializeFieldのtextに、オブジェクトを入れなかった場合、NullReferenceExceptionが発生する。
詳細エラー
NullReferenceException: Object reference not set to an instance of an object
サンプル
using UnityEngine; using UnityEngine.UI; public class NullReferenceExceptionScene : MonoBehaviour { [SerializeField] Text text; void Start() { text.text = "hoge"; } }
対応方法1
is not nullを使う(これが一番良いかも)
if (text is not null) { text.text = "hoge"; }
対応方法2
null判定する
if (text != null) { text.text = "hoge"; }
対応方法3
ReferenceEqualsを使う
if (!ReferenceEquals(text, null)) { text.text = "hoge"; }
参考:https://bluebirdofoz.hatenablog.com/entry/2022/09/18/234745
GameObject.Findで、NullReferenceException発生
GameObject.Findで存在しない、オブジェクト名を入れると、NullReferenceExceptionが発生する。
詳細エラー
NullReferenceException: Object reference not set to an instance of an object
サンプル
public class NullReferenceExceptionScene : MonoBehaviour { void Start() { GameObject go = GameObject.Find("test"); Debug.Log(go.name); } }