【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など)やサードパーティ製のコンポーネントに関してはどうしようもないです。