Unity3d Editor 编辑器扩展功能详解(4)Gizmos

大神们帮我教下,Unity3d Editor 编辑器扩展功能详解(4)Gizmos
最新回答
负距离接触

2024-10-23 14:02:38

全索引目录: Unity3d Editor 编辑器扩展功能详解(1) 目录索引

上一章节: Unity Editor 编辑器扩展功能详解(3)EditorGUI/EditorGUILayout(下)

下一章节: Unity3d Editor 编辑器扩展功能详解(5)Handles

想开新坑了,让我快马加鞭地把这系列坑填完吧。

一、 Gizmos基础介绍

官方文档: Important Classes - Gizmos & Handles

官方文档解释了Gizmos与Handles类的作用,它们允许你在“SceneView”与“GameView”中绘制线段、图形、互动控制柄等,从而扩展显示信息,构建自定义编辑工具。例如,你可以创建一个可拖动的圆环作为NPC的视听检测范围,代替在Inspector中输入数字。

简单地说,Gizmos与Handles主要用于可视化数据信息,便于Debug。

二、 Gizmos使用方式

关键字:MonoBehaviour.OnDrawGizmos, MonoBehaviour.OnDrawGizmosSelected

在MonoBehaviour相关子类中,使用特定的函数调用。OnDrawGizmos在每帧调用,所有渲染都是可见的;OnDrawGizmosSelected仅在脚本附加的物体被选择时调用。

示例代码将脚本挂载在场景中的Gameobject上,可以看见Gizmos的使用。

请注意,全局“是否显示Gizmos”的开关定义在场景上方工具栏的【Gizmos】按钮中,取消激活此按钮将不绘制任何Gizmos图形。

三、 Gizmos基本绘制API

本部分介绍Gizmos基本绘制方法,包括立方体、视锥、贴图、图标、线段、网格、射线、球体、网格线、颜色与矩阵设置。每个API都提供示例代码。

四、 Gizmos经验使用

提供了绘制圆环、弧线的经验方法。圆环绘制需自行计算线段,而弧线绘制则需基于单位圆计算起始方向与扫过的面积,不适用于AI视锥感知范围的绘制。

五、小结

Gizmos提供了基本图形绘制功能,场景文本绘制则由UnityEditor.Handles.Label提供。后续将介绍Handles的使用。