所有gizmo绘制需要在脚本的OnDrawGizmos或OnDrawGizmosSelected里函数完成。

OnDrawGizmos在每帧调用。所有在OnDrawGizmos中渲染的gizmos都是可见的。

OnDrawGizmosSelected仅在脚本附加的物体被选择时被调用。


Gizmos.DrawLine

从obj1到obj2之间画一条绿色的线。

usingUnityEngine;usingSystem.Collections;publicclassDrawLineText:MonoBehaviour{publicGameObjectobj1;publicGameObjectobj2;voidOnDrawGizmos(){Gizmos.color=Color.green;Gizmos.DrawLine(obj1.transform.position,obj2.transform.position);}}


2.Gizmos.DrawRay

从obj向上画一条长度为10的射线

usingUnityEngine;usingSystem.Collections;publicclassDrawRayText:MonoBehaviour{publicGameObjectobj;voidOnDrawGizmos(){Gizmos.color=Color.gray;Gizmos.DrawRay(obj.transform.position,Vector3.up*10);//10是长度}}


3.Gizmos.DrawCube

在(0,1,0)处画一个(1,1,1)大小的立方体

usingUnityEngine;usingSystem.Collections;publicclassDrawCubeText:MonoBehaviour{voidOnDrawGizmos(){Gizmos.color=Color.red;Gizmos.DrawCube(Vector3.up,Vector3.one);}}


4.Gizmos.DrawIcon

在(0,0,0)处生成一个名字为002IMgZLzy6Mro7r94Ka2&690.jpg的Icon ,此图片要放到Assets下的 Gizmos文件夹里才行。

usingUnityEngine;usingSystem.Collections;publicclassDrawIconText:MonoBehaviour{voidOnDrawGizmos(){Gizmos.DrawIcon(Vector3.zero,"002IMgZLzy6Mro7r94Ka2&690.jpg");}}