侧边栏壁纸
博主头像
LittleAO的学习小站 博主等级

在知识的沙漠寻找绿洲

  • 累计撰写 125 篇文章
  • 累计创建 27 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

[Unity] 更高级的调试信息 Gizmos

LittleAO
2024-08-03 / 0 评论 / 0 点赞 / 27 阅读 / 0 字
温馨提示:
本文最后更新于2024-08-03,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

介绍

Gizmos 是 Unity 提供的工具,用于在编辑器中可视化调试信息。Gizmos的中文翻译通常是辅助工具和辅助图形。Unity编辑器已经内置了一些Gizmos默认使用。

例如上面的示意图,我们可以在Game面板中设置Gizmos来隐藏和显示某些信息。在Scene面板中,摄像机的图标就是Gizmos信息。

在必要的时刻,我们也可以绘制自己的图形作为预览。通过在脚本中重写OnDrawGizmosOnDrawGizmosSelected方法就能实现。

绘制点

通过绘制球体可以实现点的绘制。例如有一个object,我想要绘制一个绿色的点在其中心。在物体绑定的脚本中编辑:

private void OnDrawGizmos()
{
    Gizmos.color = Color.green;
    Gizmos.DrawSphere(transform.position, 0.1f);
}

绘制线段

使用Gizmos.DrawLine来绘制线段,接受两个参数,分别为线段的两个端点


private void OnDrawGizmos()
{
    Gizmos.color = Color.white;
    Gizmos.DrawLine(transform.position, transform.position + new Vector3(mShootingItem.acc.x, mShootingItem.acc.y));
}      

绘制图标

// 图标的纹理
public Texture2D iconTexture;

// 在场景视图中绘制 Gizmos
private void OnDrawGizmos()
{
    // 设置 Gizmos 颜色(可选)
    Gizmos.color = Color.yellow;

    // 绘制一个球体(可选)
    Gizmos.DrawSphere(transform.position, 0.5f);

    // 绘制图标
    if (iconTexture != null)
    {
        // 在对象位置绘制图标
        Gizmos.DrawGUITexture(new Rect(transform.position.x - 0.5f, transform.position.y, 1, 1), iconTexture);
    }
}

其他

  • Gizmos.DrawSphere(Vector3 center, float radius):绘制一个实心球体。

  • Gizmos.DrawWireSphere(Vector3 center, float radius):绘制一个线框球体。

  • Gizmos.DrawCube(Vector3 center, Vector3 size):绘制一个实心立方体。

  • Gizmos.DrawWireCube(Vector3 center, Vector3 size):绘制一个线框立方体。

  • Gizmos.DrawLine(Vector3 from, Vector3 to):绘制一条线段。

  • Gizmos.DrawIcon(Vector3 position, string name):在指定位置绘制一个图标。

0

评论区