Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 单位矢量光线投射调试_Unity3d - Fatal编程技术网

Unity3d 单位矢量光线投射调试

Unity3d 单位矢量光线投射调试,unity3d,Unity3d,我正试图用2D将我的光线投射绘制到屏幕上 RaycastHit2D hit = Physics2D.Raycast(transform.position, Vector3.down, 2f, layerMask); Debug.DrawRay(transform.position, (transform.position + new Vector3(transform.position.x, transform.position.y+250, transform.position

我正试图用2D将我的光线投射绘制到屏幕上

RaycastHit2D hit = Physics2D.Raycast(transform.position, Vector3.down, 2f, layerMask);
        Debug.DrawRay(transform.position, (transform.position + new Vector3(transform.position.x, transform.position.y+250, transform.position.z)), Color.green);
        Debug.DrawLine(transform.position, (transform.position + new Vector3(transform.position.x, transform.position.y+250, transform.position.z)), Color.magenta);
        Debug.DrawLine(transform.position, (transform.position + new Vector3(hit.normal.x, hit.normal.y, -10)), Color.magenta);
        Debug.DrawLine(transform.position, (transform.position + new Vector3(hit.normal.x, hit.normal.y, 10)), Color.magenta);

光线投射正在工作,但我想看看。目前我什么也没看到。我本以为我只需要原始的3D向量变换+它的位移。但是似乎什么都不起作用。

如果不给它一个持续时间,我很确定
Debug.DrawRay
只会持续一帧。因此,要么尝试给它一个持续时间:

Debug.DrawRay(transform.position, (transform.position + new Vector3(transform.position.x, transform.position.y+250, transform.position.z)), Color.green, 2.0f);
或者在更新或绘图小控件中绘制:

private void OnDrawGizmos()
{
    Debug.DrawRay(transform.position, (transform.position + new Vector3(transform.position.x, transform.position.y + 250, transform.position.z)), Color.green);
}
上面的代码呈现了一条每帧都可见的绿线。基本上就是你所期望的

无论如何,它都不必在OnDrawGizmos中,但使用OnDrawGizmos进行调试具有将调试代码与其他代码巧妙分离的优势,因此我倾向于使用该解决方案