在Unity开发过程中可能需要查看物体的法向量信息,使用自带的Editor功能可以实现:
1 using UnityEngine; 2 using System.Collections; 3 using UnityEditor; 4 public class ShowNormals :EditorWindow 5 { 6 [MenuItem ("Window/Tools/Show Normals")] 7 public static void InitWindow() 8 { 9 EditorWindow.GetWindow<ShowNormals>(); 10 } 11 12 public GameObject Model; 13 14 void OnEnable() 15 { 16 SceneView.onSceneGUIDelegate += OnSceneGUI; 17 } 18 19 void OnDisable() 20 { 21 SceneView.onSceneGUIDelegate -= OnSceneGUI; 22 } 23 24 void OnGUI() 25 { 26 27 28 } 29 30 31 32 void ShowNormal(Mesh mesh) 33 { 34 Handles.color=Color.green; 35 var vertices=mesh.vertices; 36 var normals=mesh.normals; 37 38 for(var i=0;i<normals.Length;i++) 39 { 40 var start=vertices[i]; 41 var end=start+normals[i]; 42 Handles.DrawLine(start,end); 43 } 44 } 45 void OnSceneGUI(SceneView sceneView) 46 { 47 if(Selection.activeGameObject != null) 48 { 49 var go=Selection.activeGameObject.GetComponent<MeshFilter>(); 50 if(go!=null) 51 { 52 var mesh=go.sharedMesh; 53 54 ShowNormal (mesh ); 55 } 56 } 57 } 58 }
在编辑模式下显示物体法向量脚本,布布扣,bubuko.com
原文:http://www.cnblogs.com/suntabu/p/3662753.html