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

Unity中Game视图使用Debug.DrawLine仅显示竖线问题求助

可能的原因及对应解决方案

1. 深度测试导致横线被遮挡

Debug.DrawLine默认开启深度测试(最后一个可选参数depthTest默认值为true),如果横线刚好位于场景中未渲染的隐藏物体(比如关闭了MeshRenderer的碰撞体、透明对象、不可见UI)后方,就会被深度测试剔除,无法在Game视图显示。而Scene视图默认会忽略部分隐藏对象的遮挡,且竖线刚好未被遮挡,因此显示正常。
解决方案:修改绘制代码,关闭深度测试即可:

//Drawe Grid Box Lines
//Horizontal Lines
Debug.DrawLine(GetWorldPosition(x, y), GetWorldPosition(x + 1, y), Color.white, 100f, false);
Debug.Log("Line Drawn: " + GetWorldPosition(x, y) + ", " + GetWorldPosition(x + 1, y));
//Vertical Lines
Debug.DrawLine(GetWorldPosition(x, y), GetWorldPosition(x, y + 1), Color.white, 100f, false);
Debug.Log("Line Drawn: " + GetWorldPosition(x, y) + ", " + GetWorldPosition(x, y + 1));

2. Game视图相机裁剪参数不匹配

Game视图使用的相机的近/远裁剪面、正交大小(正交相机模式下)和Scene视图的相机参数不一致,如果横线的Z轴坐标刚好落在Game视图相机的裁剪范围外,或者在2D正交模式下刚好对齐到像素间隙,就会出现无法渲染的问题。
解决方案:

  • 选中Game视图使用的相机,对比Scene视图相机的Near Clip、Far Clip参数,确认网格所有点位都在裁剪范围内
  • 若是2D正交相机,尝试将网格整体向相机方向偏移0.1单位的Z轴距离,或者微调正交大小

3. 渲染管线或后处理过滤

如果你使用URP/HDRP等可编程渲染管线,部分后处理效果(如FXAA抗锯齿、模糊)可能会将1像素宽度的水平线条误判为噪点过滤,竖线因为方向问题不会被过滤。
解决方案:

  • 临时关闭相机挂载的后处理组件,确认横线是否恢复显示
  • 若确认是后处理导致,可改用GL类绘制调试线条,或者用LineRenderer组件替代Debug.DrawLine做长期调试

4. Game视图显示设置异常

Game视图的缩放比例不是100%、开启了低分辨率适配选项,也可能导致水平线条在缩放时丢失。
解决方案:

  • 点击Game视图上方的缩放下拉框,选择1x(100%)缩放比例
  • 取消勾选Game视图菜单中的Low Resolution Aspect Ratios选项

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 08:24:04