我是Unity初学者!Unity3d 2D Raycast调用有时穿过PolygonCollider2D的要点
Raycast2D调用的光线有时会穿过我的PolygonCollider2D的点,我不知道为什么。
点击在下图中以黄色的小水平线标出。
预期的行为:
甲射线穿过:
这是我的代码:
(path
作为PolygonCollider2D的红点)
Debug.DrawLine(origin, new Vector3(path[i].x, path[i].y, 0), Color.yellow, 0, false);
float angle = Mathf.Atan2(path[i].y - origin.y, path[i].x - origin.x);
Vector2 direction = new Vector2(Mathf.Cos(angle), Mathf.Sin(angle));
RaycastHit2D hit = Physics2D.Raycast(origin, direction);
Debug.DrawLine(new Vector3(hit.point.x, hit.point.y, 0), new Vector3(hit.point.x - .2f, hit.point.y, 0), Color.yellow);
Debug.DrawRay(new Vector3(origin.x, origin.y, 0), new Vector3(direction.x, direction.y));
是否由于四舍五入?
如果是这样,我该如何解决它?
你有没有尝试将你的对撞机缩小一点?这可能是因为你的广场上有漂浮物。 – Fiffe
缩放并没有帮助。 – Ploppy