見出し画像

【Unity】Game ViewでGizmosが重なる問題と対処法

問題

カメラをMain CameraとUI Cameraで分けて実装するとき、Game ViewにGizmosを表示すると、Gizmosが二重に表示されてしまいます。

どうやらGame ViewのOnDrawGizmos()はカメラのcullingMaskに関係なく実行されるようです。

対処法

自作のコンポーネントは以下のようにすると良いです。

private void OnDrawGizmos()
{
    // カメラに描画されないオブジェクトはGizmosも描画しない
    if ((Camera.current.cullingMask & (1 << gameObject.layer)) == 0)
    {
        return;
    }

    // Gizmos描画
    Gizmos.color = Color.red;
    Gizmos.DrawSphere(transform.position, 1.0f);
}

Unity製のコンポーネント(Cameraアイコン、Splineなど)やサードパーティ製のコンポーネントに関してはどうしようもないです。

この記事が気に入ったらサポートをしてみませんか?