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; }
こう書くとなぜか動かないので注意です。