Я специально использую raycasts Physics2D и хочу проверить это, чтобы предотвратить множественные столкновения, происходящие вокруг одной и той же поверхности (поскольку точка попадания raycast немного выходит за пределы из-за ошибок с плавающей запятой и приводит к тому, что следующая проверка raycast начинается изнутри коллайдера).
Моей первоначальной идеей было использовать причуду в RaycastHit2D.normal, которая возвращает противоположное направление raycast, когда попадание происходит изнутри коллайдера, и проверять эквивалентности, но это не только дает небольшой шанс не зарегистрировать совершенно прямые столкновения с нормальными, но и не дает точности за пределами 2-го десятичного знака, а это означает, что мне придется округлять значения, чтобы это работало, и сделать прямые столкновения более вероятными, чтобы сломать мою физическую систему.
Как лучше это проверить? Если бы только причуда RaycastHit2D.normal возвращала то же направление рейкаста, а не противоположное, чтобы я мог заставить систему проверять только углы в пределах 90 градусов от направления рейкаста и обратного нормального направления, но, увы. Думаю, я мог бы также вычесть ошибку из точки попадания raycast, чтобы вытолкнуть ее за пределы коллайдера, но я бы предпочел что-то более детерминированное. Есть идеи?