Форум » Высшая школа » Unity 3D - урок 2 » Ответить

Unity 3D - урок 2

MaximSokol: Здравствуйте! В этом уроке мы почерпнём знания о физических объектах в Unity 3D. Как известно, движок обладает встроенной физикой от Ageia, что уже гарантирует высокое качество взаимодействия объектов. Итак, давайте разбираться. Основные физические свойства находятся в меню Component -> Physics. Там мы можем наблюдать Rigidbody, Character controller, Box\Sphere\Capsule\Mesh\Wheel\Raycast Collider, разнообразные Joints (так называемые джойнты, о них в другой раз) и Constant force. Rigidbody(дословно - твёрдое тело) отвечает за гравитацию, массу тела, его подвижность и возможность вращения. Все параметры изменяемы в окне Inspector при выделенном объекте. Freeze rotation и Is kinematic мы рассматривать в этом уроке не будем, они попросту не пригодятся. Box\Sphere\Capsule\Mesh\Wheel\Raycast Collider отвечают за границы объекта, то есть его попросту говоря форму. Несложно догадаться, что у сферы будет SphereCollider, у куба BoxCollider и так далее. Inspector позволяет контролировать размеры фрм и придавать им материалы (интересный параметр, позволяет задать физические свойства металла, дерева, льда и т.д.). Joints требует наличия нескольких объектов и связывает их друг с другом, а также приклаывает к ним силы (в уроке №4). Последний параметр Constant force позволяет приложить силу к отдельному объекту по разным осям - X, Y и Z. Можно настроить трение, ускорение и прочие страшные слова из учебника физики 10 класса средней школы. Собственно, вне скриптов это все физические свойства. Пока всё свежо и не забылось, давайте перейдём к практике. 1. Создайте пустую сцену, примените к ней Скайбокс. 2. Опираясь на опыт прошлого урока, создайте сначала куб, а из него - землю путём масштабирования. 3. Примените текстуру к нашей земле, так будет нагляднее. Теперь немного нового: заходите в GameObject -> Create Other -> Sphere. Путём инструментов масштабирования\перемещения\вращения добейтесь положения сферы над нашей "землёй". Выделите сферу, нажмите Component -> Physics -> Rigidbody. В Inspector появятся новые параметры: нам сейчас нужны Mass и UseGravity. Поставьте параметр Mass значение 100, не убирайте галочку с UseGravity. Далее в том же Inspector выберите вкладку SphereCollider, найдите строку Material и задайте материал Bouncy. Сейчас этими действиями мы сделали массу нашей сферы равную 100 единицам, присвоили ей гравитацию и сделали прыгучей, то есть при столкновении сфера отскочит подобно мячу. Для наглядности присвойте нашей сфере текстуру. Далее небольшой совет: для того, чтобы наша сцена была более красивой, добавим свет. В GameObject -> Create Other выберите PointLight. Он появится на сцене, в Inspector будут отображаться его параметры. Поставьте значение Intensity = 3, Range = 200. Остальные параметры пока трогать не будем. Поместите свет под нашу сферу: Всё, можно запускать сцену и наблюдать, как сфера сначала упадёт на землю, а потом отскочит. Первый успех! 4. Можно немного усовершенствовать нашу сцену, добавить ещё парочку объектов. Создадите Cube, примените к нему Rigidbody, поставьте массу в 99 единиц, масштабируйте и поместите над сферой: Запускайте сцену. Куб ударится о серу, и они разлетятся. Однако куб, ударившись о землю, потеряет энергию, а сфера продолжит прыгать. Разные материалы. 5. Напоследок рассмотрим Constant Force. Создайте, к примеру, цилиндр (по тому же алгоритму), масштабируйте его и поместите где-нибудь на сцене, но так, чтобы он попал в поле зрения камеры. Примените к нему ConstantForce, поставьте параметр X = 1 (или больше).Поставьте UseGravity = 0 (снимите галочку) Запустите сцену: Запустите сцену и наблюдайте, как цилиндр проплывает мимо мирно и спокойно. Сохраните сцену. На этом наш второй урок окончен. Поздравляю, мы узнали об основах физики в Unity 3D! До новых встреч.

Ответов - 8

Mad Kir: Отлично Спасибо!

Vasenkov: так сказать урок физики как я понимаю? Спасибо.

zodia4: PhysX когда прикрутишь?


Admin: MaximSokol пишет: Как известно, движок обладает встроенной физикой от Ageia, что уже гарантирует высокое качество взаимодействия объектов.

zodia4: Чё то я его там не заметил

MaximSokol: Где и что ты не заметил?

zodia4: Физики нормальной))) Допустим как в Mirrors Edge)))

MaximSokol: Так блин, её надо программировать вообще-то, не конструктор. Если ты про ткани и прочее, тогда пробегись по мануалу, там всё подробно описано.



полная версия страницы