Unity3D从屏幕中间投射光线

时间:2015-07-07 19:02:46

标签: c# unity3d screen raycasting

我想从屏幕中间投射光线现在我使用鼠标并将鼠标放在中间,但它可能会导致错误。我用:

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

我应该使用什么?

1 个答案:

答案 0 :(得分:2)

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

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