DrawGizmo 属性允许您为任何组件提供一个 Gizmo 渲染器。
渲染器函数必须是静态的,并接受两个参数:正在为其绘制 Gizmo 的对象,以及一个GizmoType 参数,该参数指示正在绘制 Gizmo 的上下文。
渲染器函数可以在任何类中定义,包括编辑器脚本。这使您可以将 Gizmo 绘制代码保留在组件脚本之外,以便它不包含在构建中。
其他资源:GizmoType。
using UnityEngine; using UnityEditor;
public class MyScript : MonoBehaviour { }
// The icon has to be stored in Assets/Gizmos
public class MyScriptGizmoDrawer { [DrawGizmo(GizmoType.Selected | GizmoType.Active)] static void DrawGizmoForMyScript(MyScript scr, GizmoType gizmoType) { Vector3 position = scr.transform.position;
if (Vector3.Distance(position, Camera.current.transform.position) > 10f) Gizmos.DrawIcon(position, "MyScript Gizmo.tiff"); } }
DrawGizmo | 定义何时应调用 Gizmo 进行绘制。 |