Блог онлайн школы Пиксель

Как применять методы RigidBody в Unity. С# (Си Шарп) программирование в Unity

Привет! Школа программирования для детей “Пиксель” продолжает делиться бесплатными уроками по Unity для начинающих. В них мы учимся создавать игры в Unity и писать скрипты на языке программирования C# (Си Шарп). На этот раз мы разберем методы RigidBody в Юнити. Мы рассмотрим методы AddForce, MovePosition, MoveRotation.

Подробную видеоинструкцию вы найдете в конце материала.

Для начала подготовим сцену. Создаем Plane и Cube. Добавляем Rigidbody.

rigidbody unity

Создаем скрипт. Называем его PlayerControl.

методы си шарп


Метод AddForce в Unity


Метод AddForce прикладывает силу к физическому объекту.

Объявляем две переменные, в speed записываем силу толчка и создаем переменую типа RigidBody. В start назначаем компонент.

Update переименовываем на FixedUpdate и внутри него создаем метод AddForce. В нем текущую позицию умножаем на силу толчка.

addforce unity

Перемещаем скрипт на куб и запрещаем вращение по трем осям.

unity addforce 2d

Запускаем и проверяем.

Метод AddForce лучшего всего подходит для создания прыжка в Unity.

Метод MovePosition в Unity


Метод MovePosition перемещает твердое тело в указанную позицию путем расчета соответствующей скорости, требуемой для передвижения твердого тела в эту позицию на протяжении следующего физического обновления. На протяжении движения ни гравитация, ни линейное торможение не будет влиять на тело.

Переименовываем метод AddForce на MovePosition. В нем к текущей позиции прибавляем, куда будет двигаться объект, и умножаем на сглаживание.

unity moveposition

Метод MoveRotation в Unity


Метод MoveRotation поворачивает объект вокруг заданной оси.
Тут мы используем Quaternion.Euler — он возвращает или задает представление угла Эйлера для поворота.

Углы Эйлера могут представлять трехмерное вращение, выполняя три отдельных вращения вокруг отдельных осей. В Unity эти вращения выполняются вокруг оси Z, оси X и оси Y в указанном порядке. Контролировать вращение мы будем с помощью Vector3, в нем мы укажем нужную ось поворота.

moverotation

OnCollisionEnter — вызывается, когда два твердых тела или коллайдера соприкоснулись.
OnCollisionStay — вызывается когда два твердых тела или коллайдера соприкасаются.
OnCollisionExit — вызывается когда одно твердое тело или один коллайдер вышел из другого коллайдера.

rigidbody moveposition

Методы MovePosition и MoveRotation лучше использовать для перемещения объекта в Unity.

На этом наш урок по Юнити подходит к концу. Если вы хотите научиться создавать полноценные игры в Unity, программировать на C# и писать сложные скрипты для своих проектов, приходите к нам на полный курс по разработке игр на Unity 3D. Мы знакомим детей 10-14 лет с геймдевом и учим создавать собственные игры. Присоединяйтесь!

Бесплатные видеоуроки Unity для детей