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



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

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);
}
}

谢谢。

我发现了一个问题。我的问题已经结束了。光线击中了一个物体,这是相机。需要更正的是:

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

最新更新