#unity3d
#unity3d
Вопрос:
Я довольно новичок в Unity, и я создал простую сцену с моим персонажем и землей. Я добавил Rigidbody2D
и BoxCollider2D
к символу и еще один BoxCollider2D
к основанию. Границы коллайдеров точно соответствуют границам персонажа / земли, но мой персонаж не падает на землю, когда я нажимаю play, а скорее останавливается и плавает на несколько пикселей над ним.
Я видел много похожих вопросов, но решения не сработали для меня (или, может быть, я неправильно их понял, как я упоминал выше, я новичок в Unity, и это моя первая игра).
Вот как выглядит плавающий:
Очевидно, я мог бы «исправить» это, опустив верхнюю границу ниже фактической границы земли, вот так:
Но это, очевидно, не очень хорошее решение, и я все еще хотел бы знать, что вызывает эту ошибку и как ее исправить.
Ответ №1:
Возможно, разрыв имеет размер смещения контакта по умолчанию:
Установите значение расстояния близости для коллайдеров, которые будут считаться контактирующими, даже если они на самом деле не находятся в контакте. Коллайдеры, расстояние между которыми меньше суммы их значений contactOffset, генерируют контакты. Это позволяет системе обнаружения столкновений предсказуемо применять ограничение контакта, даже если объекты слегка разделены. Внимание: слишком сильное уменьшение этого значения может привести к нарушению способности Unity вычислять непрерывные столкновения полигонов. И наоборот, слишком большое увеличение значения может создать артефакты для столкновения вершин.
Вы можете найти его в Edit > Project Settings > Physics2d .
Комментарии:
1. Спасибо, это была проблема!