利用 Gizmos 直观地看到一些调试信息。
Unity3D Gizmos 调试可视化
在 Unity 开发中,很多时候我们需要在 Scene / Game 视图 里直观地看到一些调试信息,比如角色的攻击范围、AI 的巡逻路径、摄像机的视野等。
这时候,Unity 提供的 Gizmos 系统就是非常好用的工具。
基本用法
只要在脚本里实现 OnDrawGizmos 或 OnDrawGizmosSelected 方法,就能绘制调试辅助图形。
using UnityEngine;
public class GizmosDemo : MonoBehaviour
{
[SerializeField] private float radius = 2f;
private void OnDrawGizmos()
{
// 设置颜色
Gizmos.color = Color.green;
// 画一个球体
Gizmos.DrawWireSphere(transform.position, radius);
// 画一个立方体
Gizmos.color = Color.yellow;
Gizmos.DrawWireCube(transform.position + Vector3.up * 2, Vector3.one);
// 画一条射线
Gizmos.color = Color.red;
Gizmos.DrawRay(transform.position, transform.forward * 5f);
}
private void OnDrawGizmosSelected()
{
Gizmos.color = Color.cyan;
Gizmos.DrawWireSphere(transform.position, radius * 1.5f);
}
}
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 |
实际应用场景
显示攻击范围
private void OnDrawGizmosSelected(

最低0.47元/天 解锁文章
11万+

被折叠的 条评论
为什么被折叠?



