“视点”是起点,“endPoint”是终点。在这两个点之间有一些多边形碰撞器。我要得到所有的命中位置。
Vector2 direction = endPoint - viewpoint.transform.position;
RaycastHit2D[] rayCastHits2D = Physics2D.RaycastAll(viewpoint.transform.position, direction, Mathf.Infinity);
我应该在RatcastAll()
方法的签名中修复什么。
发布于 2019-01-28 11:27:10
从视点生成2D光线很奇怪。你确定光线投射了物体吗?
我想你可能会改用带有3D对撞机的Physics.raycastAll
。
发布于 2019-01-28 12:43:39
Physics2D.RaycastAll
需要PolygonCollider2D
来攻击他们!
它不会进行编译)
你确定所有的对撞机都在这两个点之间吗?
根据您要在其中执行的操作,您可能更希望使用Physics2D.GetRayIntersectionAll进行3D光线投射
var ray = new Ray(viewpoint.transform.position, direction);
var raycastHits2d = GetRayIntersectionAll(ray);
另请注意:
请注意,此函数将为返回的RaycastHit2D数组分配内存。如果您需要频繁地进行此类调用,则可以使用GetRayIntersectionNonAlloc来避免此开销。
https://stackoverflow.com/questions/54394997
复制相似问题