Unity3D Gizmos 调试可视化
利用 Gizmos 直观地看到一些调试信息。
Unity3D Gizmos 调试可视化
在 Unity 开发中,很多时候我们需要在 Scene / Game 视图 里直观地看到一些调试信息,比如角色的攻击范围、AI 的巡逻路径、摄像机的视野等。
这时候,Unity 提供的 Gizmos 系统就是非常好用的工具。
基本用法
只要在脚本里实现 OnDrawGizmos
或 OnDrawGizmosSelected
方法,就能绘制调试辅助图形。
1 |
|
OnDrawGizmos
-> 始终显示(场景中会很乱)OnDrawGizmosSelected
-> 只有选中物体时显示(推荐)
注:如果在视图中没有显示绘制的图形,请检查右上角的图形开关,勾选对应的脚本。
常用 Gizmos API
方法 | 描述 |
---|---|
Gizmos.DrawWireSphere(pos, radius) |
线框球体 |
Gizmos.DrawSphere(pos, radius) |
实心球体 |
Gizmos.DrawWireCube(pos, size) |
线框立方体 |
Gizmos.DrawCube(pos, size) |
实心立方体 |
Gizmos.DrawLine(start, end) |
绘制线段 |
Gizmos.DrawRay(origin, dir) |
绘制射线 |
Gizmos.DrawIcon(pos, "icon.png", true) |
绘制图标(方便定位) |
Gizmos.matrix = transform.localToWorldMatrix |
设置坐标系(绘制局部网格时很有用) |
Gizmos.DrawMesh(mesh, pos, rot, scale) |
绘制自定义 Mesh |
实际应用场景
显示攻击范围
1 |
|
显示 AI 巡逻路径
1 |
|
显示摄像机视野
1 |
|
通用 Gizmos 工具类
为了避免每次都写重复代码,可以整理一个 GizmosHelper 工具类,例如:
- 绘制调试网格
- 绘制扇形范围
- 绘制路径箭头
1 |
|
使用示例:
1 |
|
效果:
注意事项
- Gizmos 只在 Scene / Game 视图 可见,不会出现在游戏发布版本。
- 在 Gizmos 面板 勾选对应脚本才能看到。
- 建议用
OnDrawGizmosSelected
,避免场景太乱。
总结
OnDrawGizmos
/OnDrawGizmosSelected
是调试可视化的核心入口。- Gizmos 常用来显示 网格、范围、路径、摄像机视野等调试辅助信息。
- 封装 GizmosHelper 工具类 能极大提高开发效率。
Unity3D Gizmos 调试可视化
http://weikunou.github.io/2025/08/31/unity-gizmos/