Warning: Undefined array key "is_rate_editable" in /var/www/webmasr5/public_html/wp-content/plugins/wpdiscuz/class.WpdiscuzCore.php on line 1303
Движение персонажа с помощью Character Controller. Часть 2.

webmas

Урок 4. Движение объекта с помощью Character Controller. Часть 2.

     Добрый день. В третьем уроке мы рассмотрели передвижение персонажа с помощью компонента Character Controller и теперь можем двигаться назад, вперед, влево и вправо. Но что если нам нужно, чтобы игрок поворачивался в стороны, а двигался только вперед и назад. Как раз в этой статье мы поговорим об этом. Для начала давайте создадим новый скрипт(или используем с прошлой статьи). Така я создал новый скрипт я назвал его MoveCharacter2 и прикрепил его к нашему объекту(удалив прошлый). 

Скриншот №1

     Если вы оставили скрипт с прошлого урока, то можно оставить всё без изменений до метода FixedUpdate() включительно. Если создали новый, то создайте переменные для скорости движения, гравитации, прыжка и силы прыжка, а так же переменные вектора и компонента Character Controller.

Скриншот №2

     Давайте создадим метод Move() пропишем в нем алгоритм управления. Для начала так же пропишем управление по оси x и вращение по оси y.

    Вращение и перемещение будем осуществлять с помощью transform(подробнее описывается в уроке №1). Для движения будем использовать transform.forward умножая его на нашу скорость движения и кнопки управления (переменная x). Так же здесь будет алгоритм прыжка, для этого transform.up умножим на jumpUp и все это умножим на Time.deltaTime. Для поворота будем менять transform.Rotate  с помощью Vector3.up по оси y. Заставлять персонажа двигаться по направлению поворота будем использовать функцию Move(Скриншот №3).

Скриншот №3

     Теперь осталось создать алгоритм для прыжка. Вначале проверим нахождение нашего персонажа на поверхности, а так же нажатие кнопки space. И это так, то передаем нашему прыжку(jumpUp) силу прыжка(jump). Затем в методе прописываем алгоритм  гравитации. Для этого в начале проверяем находится ли наш персонаж в воздухе и если это так, то уменьшаем силу прыжка прибавляя к ней силу гравитации умноженную на Time.deltaTime(Скриншот №4)

Скриншот №4

     Вот и всё. Скрипт готов.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии