Физический 2D материал
Physics Material 2D используется для настройки трений и отскакиваний, которые происходят между 2D физическими объектами при их столкновении. Создать 2D физический материал можно через меню Assets ( Assets > Create > Physics Material 2D ).

Свойства
| Свойство: | Функция: |
|---|---|
| Friction | Коэффициент трения для данного коллайдера. |
| Bounciness | Степень отскока столкновений от поверхности. Значение 1 означает что нет отскока, в то время как значение равное 1 означает хорошую отскакиваемость без дальнейшей потери энергии. |
Детали
Для использования 2D физического материала, просто перетащите его на объект к которому привязан 2D коллайдер и перетащите его на компонент коллайдера в инспекторе. Заметьте, что для 3D физики эквивалентный ассет упоминается как Physic Material (т.е. без S в слове physic) — для скриптинга важно, чтобы не возникал конфликт между двумя командами.
Физика

Чтобы физическое поведение было правдоподобной, объект в игре нужно правильно ускорить и задействовать столкновения, гравитацию и другие силы. Встроенный в Unity физические движки обеспечивают вас компонентами для обработки симуляции физики. С помощью настройки всего нескольких параметров, можно создать объекты, которые ведут себя пассивно реалистично (т.е., они будут перемещены в результате столкновений и падений, но не начнут двигаться сами по себе). Управляя физикой из скриптов, вы можете придать объекту динамику автомобиля, машины или даже подвижного куска ткани. На этой странице рассматриваются основные компоненты физики в Unity со ссылками для дальнейшего чтения.
Примечание: На самом деле в Unity есть два отдельных физических движка, один для 3D физики и один для 2D физики. Основные понятия идентичны в обоих движках (за исключением дополнительного измерения в 3D), но они реализованы с разными компонентами. Так, например, существует компонент Rigidbody для 3D физики и аналогичный Rigidbody 2D для 2D физики.
See the Knowledge Base Physics section for troubleshooting, tips and tricks.
Как сделать нормальную физику сталкивания игрока со стенами в unity? [дубликат]
Собственно проблема в том, что персонаж в одном кадре влезает в стену, потом просчитывается физика и его отпружинивает обратно. Пытался двигать и с помошью addforce, и изменяя velocity, и просто через transform.position, и в update и в fixedUpdate. Всё равно. Сейчас сделал костыль. Пуская racast в право, и если расстояние до ближайшего коллайдера после изменения позиции игрока(до отрисовки) слишком маленькое, то есть игрок в стене, то двигаю игрока обратно к краю стены. Работает идеально. Но в реализации куча неприятностей. Основная проблема — лучей придётся пускать по несколько в каждую из 4 сторон. Это довольно запарно. Если есть какой-то более адекватный способ сделать хорошую физику, поставить там какую-то галочку в rigitbody, или всё же я не разобрался, и можно как-то сделать это с обычной физикой unity. Буду очень благодарен, если пришлёте готовый скрипт управления персонажем, где учтены эти тонкости.
Физика мяча для 2D объекта
Сначала для 2D-объекта, например мяча, надо настроить поведение по правилам физики.
Затем выбрать Assets → Create → Physics Material 2D, после чего будет создан объект.

Данный объект надо перенести в поле Material для 2D-объекта.

И в настройках файла «Physics Material 2D» указать значение Bounciness, которая задаёт высоту «прыгучести» объекта.

Теперь 2D-объет будет отскакивать от поверхности как мяч.
Обновлено: 29 января 2021
Комментарии
Авторизуйтесь, чтобы добавлять комментарии