最近有一个小需求,要为曲线绘制工具增加一个边界提示,如图:
一开始我尝试在OnSceneGUI里面绘制,后来发现只要一取消选择这个GameObject,绘制就会消失,为了能够一直显示这个图形,需要使用到DrawGizmo这个特性,如下:
[DrawGizmo(GizmoType.NonSelected | GizmoType.Selected | GizmoType.Pickable)]
public static void DrawRouteManagerGizmo(RoutesManager rmgr, GizmoType gizmoType)
{
if (rmgr != null)
{
BezierUtils.DrawRedRectBound(rmgr.bounds);
}
}
上面函数有两点需要说明
1参数:参数1是继承自MonoBehavior的组件类型,参数2是GizmoType。
2GizmoType:
NonSelected表示未选中的时候也要绘制
Selected表示选中的时候需要绘制
Pickable表示可以通过点击Gizmo去选取指定的GameObject
但是需要注意一点,绘制一定要通过Gizmos.DrawXXX,我已开始通过Handles.DrawLines绘制的红色矩形,