В общем такое дело: есть персонаж, на нем висит скрипт определения касания земли, для того, чтобы нельзя было бесконечно прыгать. Но дело в том, что иногда даже после касания с землей, персонаж отказывается прыгать. Я пробовал изменить колайдер земли, колайдер персонажа, но ничего не помогает.
Возможно, у вас высота персонажа 0.00000000138456827364. То есть выше нуля. И если вы проверяете тупо сравнением (a > 0), то персонаж получается висит в воздухе. Нужно либо округлять, либо вносить поправку на погрешность, хотя бы до 4-5-го знака: (a - 0.0001 > 0)
dollar, больше вопрос - что правильнее. В вашем примере как минимум модуля нехватает. А Mathf.Approximatly, если я правильно помню, учитывает еще и снижение точности для больших флотов.
GavriKos, в моем примере модуль не нужен, это проверка на отрыв от нуля ввысь с учетом погрешности. Ну, а точность при удалении от начала координат, да, это проблема, но правильнее будет не допускать больших флотов в разрабатываемой игре на Unity.
dollar, я проверяю в внутри функции OnCollisionEnter2D, через булевую переменную, а не через расстояние между землей и персонажем. Или стоит все таки проверять через расстояние между землей и персонажем?
Yaonosos, можно по-разному. В любом случае, нужно отлаживать конкретно тот код, который сбоит. Ведь у вас в момент прыжка проверяется какое-то условие, которое не выполняется. Вот все компоненты этого условия нужно выводить куда-то в лог в момент прыжка, чтобы увидеть, в чем проблема. Либо касание не сработало, либо сработало, но что-то другое не учлось и т.д.