[UNITY]2DRPG開発日誌 #69 Destroyしてもnullになってくれない問題

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;
    }

こう書くとなぜか動かないので注意です。