技術資料:OnDrawGizmosSelected メソッド
概要
OnDrawGizmosSelected
は Unity の MonoBehaviour に含まれる特別なメソッドで、シーンビュー内でオブジェクトが選択されているときにのみ Gizmo
を描画します。通常、デバッグ用の可視化として使用され、ゲームビューには表示されません。OnDrawGizmosSelected
を利用することで、視覚的な混乱を避けつつ、特定のオブジェクトの位置や範囲を把握しやすくなります。
特徴
- 選択時のみ描画:このメソッドは、対象オブジェクトがシーンビューで選択されているときにのみ呼び出されます。これにより、視覚的な混乱を減らし、必要な情報を選択時にのみ表示できます。
- シーンビューでのデバッグ向け:
OnDrawGizmosSelected
は、開発中のシーンビューにおいて、オブジェクトの位置や範囲、デバッグ情報などを可視化するために使用します。 - ゲームビューには表示されない:
OnDrawGizmosSelected
で描画された Gizmo はゲームビューに反映されません。あくまで開発者のための視覚情報です。
基本構文と使い方
以下は OnDrawGizmosSelected
の基本的な構文例です。シーンビューでオブジェクトが選択されると、指定した位置に赤いワイヤースフィアが表示されます。
void OnDrawGizmosSelected()
{
Gizmos.color = Color.red; // 描画するGizmoの色を設定
Gizmos.DrawWireSphere(transform.position, 1.0f); // ワイヤースフィアを描画
}
使用例
例1:オブジェクトの範囲を可視化する
例えば、オブジェクトの範囲を確認したい場合に、ワイヤーフレームで球体や立方体を描画することで、視覚的に把握できます。
void OnDrawGizmosSelected()
{
Gizmos.color = Color.green;
Gizmos.DrawWireSphere(transform.position, 2.0f); // 半径2の緑色ワイヤースフィアを描画
}
例2:敵キャラクターの視野範囲を可視化する
敵キャラクターがプレイヤーを認識できる範囲を視覚化し、シーンビューで確認できるようにする例です。これにより、視野範囲の調整が容易になります。
public float viewRadius = 5.0f;
void OnDrawGizmosSelected()
{
Gizmos.color = Color.yellow;
Gizmos.DrawWireSphere(transform.position, viewRadius); // 視野範囲を表す球体を描画
}
このように viewRadius
に視野範囲を代入しておけば、スクリプト内で簡単に変更でき、シーンビューで確認が可能です。
使用時の注意点
- パフォーマンス:
OnDrawGizmosSelected
は開発時にのみ使用することが推奨され、パフォーマンスにはほとんど影響しませんが、過剰に描画するとシーンビューの操作に支障が出る可能性があります。 - 表示制限:
OnDrawGizmosSelected
で描画されるのは、シーンビューで選択されているオブジェクトのみです。全てのオブジェクトの範囲を確認する場合は、OnDrawGizmos
メソッドを使用するのが適切です。
関連メソッド
OnDrawGizmos
:選択状態に関係なく常に Gizmo を描画します。全てのオブジェクトを可視化したい場合に便利です。
まとめ
OnDrawGizmosSelected
は、特定のオブジェクトがシーンビューで選択されている際にのみ可視化を行うためのメソッドであり、開発段階でのデバッグや範囲確認に非常に役立ちます。特に、デバッグ情報やオブジェクトの影響範囲をシーンビューで効率的に確認できるので、設計段階やスクリプト調整の際に利用すると良いでしょう。
ディスカッション
コメント一覧
まだ、コメントがありません