Физический скрипт Rigidbody в Unity

Всем доброго времени суток. Сегодня я буду рассматривать физическую часть движка Unity 3d а именно Rigidbody.

 

Чтобы не путаться с тем что уже сделано, а что нет, я создал новую платформу, и повесил над ней сферу, которая и является нашим испытуемым объектом. Rigidbody можно добавить на наш объект, для этого надо выделить объект на который добавляем физическую часть, затем переходим в меню Component > Phisics > Rigidbody. Теперь в инспекторе появилась надпись Rigidbody.

Rigidbody в Unity 3d
Dante

Что в нем мы имеем? Сначала идет Mass это масса, измеряется в килограммах, здесь все просто. Дальше идет Drag, если верить Google, это тянуть, тащить, перетаскивать, а в реальности это вязкость среды. То есть, если мы повысим заданное число, то наш объект будет продвигаться в данной среде медленнее, как например в воде, или в болоте. Затем идет Angular Drag, это тоже что и Drag, только угловая вязкость, то есть вязкость для вращения. Чтобы контролировать скорость вращения. Следующей идет Use Gravity, это гравитация, если данную галочку убрать то гравитации не будет, и объекты не будут двигаться под воздействием силы тяжести. Далее у нас идет Is Kinematic, включение отключение кинематики, при включенной кинематике, внешние физические воздействия не будут производить на объект никакого влияния. Короче кто не понял посмотрите что такое кинематика. Теперь у нас идет Interpolate это сглаживание движения, здесь у нас есть выбор того что можно настроить, по умолчанию стоит None, то бишь интерполяция а именно поиск промежуточных значений в физическом движении отключена. Данное значение можно изменить на Interpolate это по прошлому кадру, либо Extrapolate по следующему кадру. При большой скорости движения данные значения могут сгладить движения нашего объекта. Следующим пунктом у нас идет Collision Detection, данный пункт отвечает за столкновения, к примеру выстрелы и столкновения пули, пули летят с большой скоростью и данный пункт может помочь в случае каких-либо проблем, с пролетанием сквозь объект и тд. Discrete который стоит у нас по умолчанию, это самое обычное столкновение. Continuous это частое столкновение, когда наш объект много сталкивается, ну к примеру много разных объектов, и чтобы они не проходили сквозь друг друга используется Continuous. И крайнее наше значение здесь это Continuous Dynamic, данный скрипт используется для пуль и иных объектов обладающих очень большими скоростями, используется для того чтобы на больших скоростях объекты не проходили сквозь друг друга. То есть, пуля, к примеру может застрять, отскочить, срикошетить но не пройти сквозь объект. Если я правильно понял. Ну и крайний пункт который у нас есть в Rigidbody, это Constraints. Данный пункт отвечает за замораживание движения. То бишь вы можете ограничить движение по определенному вектору., здесь все достаточно просто, выбираем вектор по которому вращение нам ненужно, и ставим там галочку. Ну здесь надо пробовать чтобы получилось что необходимо, если к примеру нам надо чтобы платформа провернулась просто на месте, то выделяем галочкой при этом первая строка Freeze Position, отвечает за вектора вращение по которым необходимо запретить то бишь если мы её выделим всю, то наш объект будет просто вращаться на месте. А вторую строку сам до конца не понял. Ладно потом может докумекаю.

 

Вот как то все так. Мне так полезно было, а вы смотрите сами.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *