You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity启用Gizmos后其他Gizmos仍显示,如何仅保留Debug.DrawLine?

解决Unity中保留Debug.DrawLine同时隐藏其他Gizmos的方法

方法1:通过Gizmos面板精准过滤

  • 在Game视图右上角点开Gizmos下拉面板,只勾选Debug选项(这是Debug.DrawLine的显示开关)
  • 找到TextMeshPro或TextMeshProUGUI相关选项,取消勾选它们的Gizmos显示
  • 把其他不需要的组件Gizmos选项全部取消勾选

方法2:用代码屏蔽特定组件的Gizmos

如果有些组件的Gizmos没法通过面板关闭,给对应对象挂个脚本覆盖默认的Gizmos绘制逻辑:

using UnityEngine;
using TMPro;

[RequireComponent(typeof(TextMeshProUGUI))]
public class TurnOffTMProGizmos : MonoBehaviour
{
    // 空实现OnDrawGizmos,覆盖TextMeshPro默认的Gizmos绘制
    void OnDrawGizmos() {}
}

把这个脚本挂到所有显示Gizmos的Text Mesh Pro对象上就行。

方法3:用GL类替代Debug.DrawLine(可选)

如果上面的方法都不生效,直接用GL类画线,这种方式不需要开Gizmos开关,完全独立显示:

using UnityEngine;

public class DrawLineNoGizmos : MonoBehaviour
{
    public Vector3 lineStart;
    public Vector3 lineEnd;
    public Color lineColor = Color.red;

    void OnPostRender()
    {
        GL.PushMatrix();
        Material lineMat = new Material(Shader.Find("Unlit/Color"));
        lineMat.SetColor("_Color", lineColor);
        lineMat.SetPass(0);

        GL.Begin(GL.LINES);
        GL.Vertex(lineStart);
        GL.Vertex(lineEnd);
        GL.End();
        GL.PopMatrix();
    }
}

内容的提问来源于stack exchange,提问作者Frank

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 08:34:57