Unity3D从屏幕中间投射光线

本文关键字:中间 屏幕 Unity3D | 更新日期: 2023-09-27 18:01:23

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

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

我应该用什么来代替呢?

Unity3D从屏幕中间投射光线

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

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
}

Debug Ray仅在游戏运行时在场景视图中可用。如果你想在游戏中绘制一条线,请查看linerender。