UNITYでゲームオブジェクトをDestroyしたフレーム内で == nullと判定すると「nullでない」が返ってきてしまう問題。
詳細はこの記事に詳しいですが、私はいちいちフレームをまたいだり、Destroy後にnullを代入するなんてことはできません。絶対に忘れます。
なので、nullチェックに==nullを使わず、必ず自作ライブラリで判定するようにしました。
public static bool IsNull(GameObject _var)
{
GameObject v = _var;
return v == null;
}
このようにローカル変数に一度代入し、そのローカル変数をnullチェックすれば同フレーム内でのnullチェックが可能です。
このメソッドを自作ライブラリに入れておき、nullチェックは必ずこのメソッドで行うようにすれば解決です。
なお、
public static bool IsNull<T>(T _var)
{
T v = _var;
return v == null;
}
こう書くとなぜか動かないので注意です。