ギズモ?
ギズモとはUnityエディタのSceneビューにのみ表示される、開発用のオブジェクトです。
この矢印がギズモの例です。
ギズモは最初から用意されているものの他に、カスタムして表示することができます。
ギズモを表示してみる
using UnityEngine; public class DrawGizmo : MonoBehaviour { private void OnDrawGizmos (){ // ワイアーキューブを表示する Gizmos.DrawWireCube(Vector3.zero, Vector3.one); } }
OnDrawGizmos() の中に処理を書くだけで表示できます。
法線を可視化する
何か意味あることをやらないとつまらないので、法線を可視化してみましょう。
using UnityEngine; public class DrawGizmo : MonoBehaviour { private void OnDrawGizmos (){ var preColor = Gizmos.color; var preMatrix = Gizmos.matrix; Gizmos.color = Color; Gizmos.matrix = transform.localToWorldMatrix; // 法線方向にラインを描画 var mesh = GetComponent<MeshFilter>().sharedMesh; for (int i = 0; i < mesh.normals.Length; i++) { var from = mesh.vertices[i]; var to = from + mesh.normals[i]; Gizmos.DrawLine(from, to); } Gizmos.color = preColor; Gizmos.matrix = preMatrix; } }
これを Cube とか Sphere とかにアタッチします。
法線が表示されました。