繁体   English   中英

为什么靠近 object 时 Unity 中的光线投射不起作用?

[英]Why raycast in Unity doesn't work when close to an object?

我想知道是什么导致了这种情况。 我正在从相机(在 object 上我用鼠标移动)向托盘投射光线。 当托盘足够近时,光线会变成红色,这意味着它们正在撞击某物。 我的任务是检查相机和托盘之间是否有东西。 请解释一下它是如何工作的。

GIF 可视化我的问题

我的部分代码:

bool[] hits = new bool[aug_pts.Count];
        for (int i = 0; i < aug_pts.Count; i++)
        {
            RaycastHit hitInfo;
            bool hit;
            float distance = Vector3.Distance(this.transform.position, aug_pts[i]);

            Vector3 direction = aug_pts[i] - this.transform.position;
            hit = Physics.Raycast(this.transform.position, direction, out hitInfo, distance);

            if (hit && hitInfo.collider.name != "wood_pal") 
            {
                Debug.DrawLine(this.transform.position, aug_pts[i], Color.red);
                hits[i] = true;
            }
            else
            {
                hits[i] = false;
                Debug.DrawLine(this.transform.position, aug_pts[i], Color.green);
            }
        }

谢谢你。

我发现了一个问题。 这个问题我被关闭了。 光线照射在相机上的 object 上。 需要更正的是:

if(hit && hitInfo.collider.name != "wood_pal" && hitInfo.collider.name != "my_object")
{
...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM