射线投射点不在平面图层(倾斜位置)上吗?

时间:2019-06-01 20:38:11

标签: unity3d raycasting

目标:获取射线投射与平面图层的相交点。

射线投射绘制一条与平面相交的线(在鼠标单击时)。

但是线也与路径中的所有点相交,因此结果点是与平面以外的对象的相交点。

我已将平面的层分配为“平面”,并且仅在光线投射时将代码中的平面层包括在代码中。

        if (Input.GetMouseButton(0))
        {
            RaycastHit hit;
            int layerMask = (1 << 8); // Plane's Layer
            var ray = Camera.main.ScreenPointToRay(Input.mousePosition);

            if (Physics.Raycast (ray, out hit, layerMask)) {
                transform.position = hit.point;
            }
        }

正在发生的事情是,游戏对象的位置将覆盖其旧位置,直到该对象被相机剪切为止。

1 个答案:

答案 0 :(得分:0)

因此,您正在将射线,RayCastHit和一个数字传递到Physics.Raycast中,并且可以这样识别它们:

# PHP5 module LoadModule php5_module "c:/php/php5apache2_2.dll" AddType application/x-httpd-php .php PHPIniDir "C:/php"

每次使用图层蒙版进行raycast时,都需要首先设置投射的距离,因为这是所有raycast方法期望的是命中后使用的第一个数字。这是一个应使用Physics.Raycast (ray, hit, distance)作为距离的版本:

Mathf.Infinity