答案 0 :(得分:0)
我想最简单的方法就是将BoxCollider
与Trigger
一起用于您所在的地区。并在OnTriggerEnter()
。
答案 1 :(得分:0)
根据我的理解,你想找出一条射线与一些由4个点组成的三维多边形的交点。但是,我只知道如何使用3D盒子。
首先,您需要将此端口移植到Unity,这应该非常简单(来源:http://tavianator.com/fast-branchless-raybounding-box-intersections/)。
void intersection(Box b, Ray r, out float tMin, out float tMax)
{
double tx1 = (b.min.x - r.x0.x)*r.n_inv.x;
double tx2 = (b.max.x - r.x0.x)*r.n_inv.x;
tmin = min(tx1, tx2);
tmax = max(tx1, tx2);
double ty1 = (b.min.y - r.x0.y)*r.n_inv.y;
double ty2 = (b.max.y - r.x0.y)*r.n_inv.y;
tmin = max(tmin, min(ty1, ty2));
tmax = min(tmax, max(ty1, ty2));
}
接下来,您需要遍历所有框。对于每个循环,您可以使用带有tMin和tMax结果的Ray.GetPoint找到交叉向量。
我很不确定你想要达到的目的,但请原谅我,如果我的回答不是你想要的。
答案 2 :(得分:0)
试试这个
尝试从目标到目的地拍摄光线。
如果射线击中了什么,它会通知你。
参考 - > http://docs.unity3d.com/ScriptReference/Physics.Raycast.html