Unity Raycast如何检测到碰撞器的“外部”点,而不仅仅是“内部”点?

3
通过在Unity中使用Physics.Raycast,我们可以轻松地获取点、法线、碰撞器名称等命中信息... 但是,我如何获取射线从碰撞器出发的“点”?感谢您花时间思考这个问题。
1个回答

1
你可以尝试仅在已击中的碰撞器上投射反向射线,以确定射线从后面进入的位置?下面的代码可能有效。
RaycastHit firstHit;
Ray firstRay = new Ray (origin, direction);
Physics.Raycast (firstRay, out firstHit, distance);

Vector3 reverseOrigin = firstRay.origin + (firstRay.direction * distance);
RaycastHit reverseHit;
Ray reverseRay = new Ray (reverseOrigin, (firstRay.direction * -1));
firstHit.collider.Raycast (reverseRay, out reverseHit, distance);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接