Это для физического движка:
Когда объект сталкивается с уклоном, его скорость будет регулироваться соответственно параллельному уклону.
Чтобы проверить, движется ли объект к склону или от него, я использую скалярное произведение между нормалью склона и скоростью объекта.
Проблема возникает из-за математики с плавающей точкой. Иногда скорость объекта параллельна наклону, но не идеально параллельна, что приводит к его обнаружению как столкновение.
В большинстве случаев это неверно, так как скорость будет постоянно перенастраиваться, чтобы быть параллельной, проверяться снова и обнаруживаться еще раз.
Есть ли способ избежать такого поведения без необходимости хранить дополнительные переменные?
(Я мог бы легко добавить копию склона, чтобы проверить, что он был недавно поражен, но это привело бы к гораздо большему количеству проверок для каждого отдельного объекта)
Вы можете установить минимальное отклонение от наклона, которое приводит к проверке обнаружения столкновений. то есть, если склоны очень похожи, не проверяйте столкновение. например отклонение менее 0,01 ° следует рассматривать как параллельное.
Других решений пока нет …