所有gizmo繪制需要在腳本的OnDrawGizmos或OnDrawGizmosSelected里函數完成。
OnDrawGizmos在每幀調用。所有在OnDrawGizmos中渲染的gizmos都是可見的。
OnDrawGizmosSelected僅在腳本附加的物體被選擇時被調用。
-
Gizmos.DrawLine
從obj1到obj2之間畫一條綠色的線。
1 using UnityEngine; 2 using System.Collections; 3 public class DrawLineText : MonoBehaviour { 4 5 public GameObject obj1; 6 public GameObject obj2; 7 8 void OnDrawGizmos() 9 { 10 Gizmos.color = Color.green; 11 Gizmos.DrawLine( obj1.transform.position , obj2.transform.position ); 12 } 13 }
2.Gizmos.DrawRay
從obj向上畫一條長度為10的射線
1 using UnityEngine; 2 using System.Collections; 3 public class DrawRayText : MonoBehaviour { 4 5 public GameObject obj; 6 void OnDrawGizmos() 7 { 8 Gizmos.color = Color.gray; 9 Gizmos.DrawRay(obj.transform.position, Vector3.up * 10); //10 是長度 10 } 11 }
3.Gizmos.DrawCube
在(0,1,0)處畫一個(1,1,1)大小的立方體
1 using UnityEngine; 2 using System.Collections; 3 public class DrawCubeText : MonoBehaviour { 4 5 void OnDrawGizmos() 6 { 7 Gizmos.color = Color.red; 8 Gizmos.DrawCube(Vector3.up , Vector3.one); 9 } 10 }
4.Gizmos.DrawIcon
在(0,0,0)處生成一個名字為002IMgZLzy6Mro7r94Ka2&690.jpg的Icon ,此圖片要放到Assets下的 Gizmos文件夾里才行。
1 using UnityEngine; 2 using System.Collections; 3 public class DrawIconText : MonoBehaviour { 4 5 void OnDrawGizmos() 6 { 7 Gizmos.DrawIcon(Vector3.zero , "002IMgZLzy6Mro7r94Ka2&690.jpg"); 8 } 9 }