null
参考:
Unity の null は null じゃないかもしれない – Qiita
UnityEngine.Object の null チェックで ? 演算子とか ?? 演算子は使わないほうがよさそうだ | LIGHT11
破棄した GameObject の null に関して – teratail
null を判定する
if (obj == null) {
Debug.Log("obj is null");
}
if (obj != null) {
Debug.Log("obj is not null")
}
Code language: C# (cs)
参考:
参照の null チェックは忘れずにやっておこう! | エクスプラボ
null なのに null 判定に引っかからなくて躓いた | エンジニアの階段
GameObject 型のインスタンスの null チェックを省略可能な拡張メソッド | コガネブログ
Unity で GameObject が null の時に条件分岐したいです – teratail
Custom == Operator, Should We Keep It? | Unity Blog [Official]
ヌル合体演算子/ヌル条件演算子
Unity のゲームオブジェクトで使われる null
は C# のnull
ではないため、ゲームオブジェクトに対してヌル合体演算子、及びヌル条件演算子は使用できない。
null
であった場合に C# の null
に変換する、キャスト用メソッドを定義する。
public static T NullCast<T>(this T obj) where T : UnityEngine.Object
=> (obj != null) ? obj : (System.Object)null;
Code language: C# (cs)
キャスト用メソッドを用いて、ヌル合体演算子を使用する。
GetComponent<Rigidbody>().NullCast()?.AddForce(force, mode);
Code language: C# (cs)
参考:
GetCompornent でヌル条件演算子が使えない – Qiita
ヌル合体演算子とヌル条件演算子についてかるくまとめてみた | はなちるのマイノート
GameObject が削除されて null になったかどうかはヌル合体演算子では確認できない | コガネブログ
Unity の偽装 null の話 | Nobollel 開発者ブログ
RectTransform をなるはやで取得したい – Qiita
文字列を判定する
文字列がヌルまたは空であるかを判定するには、String.IsNullOrEmpty
メソッドを用いる。
参考:
文字列が null または空文字列かどうかをスマートに判定する | はなちるのマイノート
文字列が null か空文字列かを簡単に判定するには? | @IT
String.IsNullOrEmpty メソッド | Microsoft Learn [公式]
ヌル参照例外 (Null Reference Exception)
参考:
Null Reference Exception | Unity マニュアル [公式]
Destroy() doesn’t create NullReferenceExeption? – Unity Forum
NullReferenceException from UnityEditor.InspectorWindow.GetEditorsWithPreviews – Stack Overflow
ヌル許容値型 (System.Nullable)
コード:
EnableNullable.cs (kyubuns) – GitHub Gist
参考:
null 許容参照型を有効化するスクリプト書いた (@kyubuns) | Twitter
null 許容値型 | Microsoft Learn [公式]
コンポーネントのヌル参照を検出/警告する
参考:
Missing チェックを行う Editor 拡張 – Qiita
Null の場合警告を出す Attribute | うにてぃブログ
まとめ
UnityEngine.Object の Null チェックまとめ | コガネブログ
チュートリアル
How to Fix Null Reference Exception in C#! (Code Monkey)
Null Reference Exception – Object Reference Not Set to an Instance of an Object (Nested Mango)