Unityはシーン上にGizmoといった形でオブジェクトの情報を表示する事が出来ます。Gizmoを使うことでオブジェクトの影響範囲や移動ルート、その他諸々がシーン上でビジュアル的に確認出来るため、ゲームの進行や状態の確認に非常に有用です。
GizmoはOnDrawGizmosや OnDrawGizmosSelectedといったコールバックをMonobehaviourを継承したクラスに追記すれば追加する事ができます。例えばA点とB点の2つの座標を繋ぐ線を表現したい場合、以下のように記述します。
using UnityEngine;
using System.Collections;
public class GizmoLine2 : MonoBehaviour {
public Transform target;
void OnDrawGizmosSelected()
{
if( target != null )
Gizmos.DrawLine(transform.position, target.position);
}
}
OnDrawGizmosと OnDrawGizmosSelectedの違いは常時表示されるかの有無です。SelectedはInspectorで大本のコンポーネントを表示している時のみ表示されます。
Gizmoを非表示にする
このGizmoですが、場合によっては邪魔です。量が多いと鬱陶しいです。なので、これらを非表示にするのが今回の主題です。
ある意味安易なGizmoを非表示にする方法は、コンポーネントを閉じてしまう事です。コンポーネントを閉じる事で該当のコンポーネントが持つGizmo表現を非表示にできます。
も一つが、シーンビュー上にあるコレです。
この項目にはプロジェクト内でGizmoを持っている全てのコンポーネント一覧が表示されます。この項目の一番右の項目=Gizmoのチェックを外すと、Gizmoが表示されなくなります。
また、Iconのチェックを外すとアイコンが表示されなくなります。例えばCameraのアイコンを外すとカメラのアイコンが非表示になります。
Gizmoは特にステージを構築したりする際にとても活躍しますが、ON/OFFを知らないとゴチャゴチャしてしまうので、適度に切ったりすると良い感じになりそうです。
関連
UnityのSceneViewにラベルやボタンを表示する - テラシュールブログ
Unityのカメラ描画範囲を常に表示させる - テラシュールブログ