Unity3D 从屏幕中间投射光线

Unity3D casting ray from the middle of the screen

我现在想从屏幕中间投射光线,我通过使用鼠标来做到这一点并将鼠标设置在中间,但这会导致错误。我使用:

ray = Camera.main.ScreenPointToRay(Input.mousePosition);

我应该改用什么?

根据我的经验,我发现调试射线(显示在编辑器场景视图中的射线)在使用射线时很有帮助。

Vector3 rayOrigin = new Vector3(0.5f, 0.5f, 0f); // center of the screen
float rayLength = 500f;

// actual Ray
Ray ray = Camera.main.ViewportPointToRay(rayOrigin);

// debug Ray
Debug.DrawRay(ray.origin, ray.direction * rayLength, Color.red);

RaycastHit hit;
if (Physics.Raycast(ray, out hit, rayLength))
{
    // our Ray intersected a collider
}

调试射线仅在场景视图中可用,而游戏是 运行。如果您想在游戏中画一条线,请查看 LineRenderer.