Напишем первый скрипт движения по горизонтали.




Система управления. Часть 1.

Создание системы управления в unity, да и в играх в целом, очень специфичная область программирования. Ведь система подстраивается под нужды проекта, а значит и сложность ее будет зависеть от сложности проекта и уровня ваших знаний и подготовки.

Конечно, когда мы говорим о жанре платформер, тем более в 2D играх, то система управления здесь реализуется на порядок проще, чем в более крупных 3D играх, к тому же, Unity предлагает множество уже готовых решений и все, что вам требуется – только правильно их использовать.

В Unity скрипты - это особый тип компонентов. Вы можете добавить их в GameObject, и любое поведение, которое вы в нем кодируете, будет применено к этому GameObject.

Откройте папку Scripts и создайте новый файл и назовите его BlackController

Дважды щелкните по созданному скрипту

Давайте рассмотрим, что внутри

Вы можете пока игнорировать строки, начинающиеся с ' using ', но не удаляйте их, это подключенные библиотеки, которые позволяют вашему скрипту нормально работать в среде юнити.

Public class BlackController: MonoBehaviour (строки с 5 по 18)

«Класс» означает, что вы определяете новый компонент. В этом случае он называется BlackController. Все, что находится между открывающими фигурными скобками, которые начинаются после этой строки, и той, которая находится в конце файла, является частью вашего компонента.

void Start (){} (строки с 8 по 11)

Unity выполняет код внутри Start только один раз при запуске игры.

void Update (){} (строки с 14 по 17)

Unity выполняет код внутри Update каждый кадр. Чтобы создать впечатление движения, игра (как и фильм) - это неподвижные изображения, которые показываются с высокой скоростью. Обычно в играх за одну секунду показывается 30 или 60 изображений. Каждое из этих изображений называется frame. Перед созданием этого изображения Unity выполняет код, написанный в функции void Update сех ваших GameObject.

В этой void Update вы напишете все, что вы хотите, чтобы постоянно происходило в игре (например, чтение ввода от игрока, перемещение GameObject или подсчет времени).

Напишем первый скрипт движения по горизонтали.

И нажмем Ctrl + S

В первой строке вы объявили переменную с именем Position и сохранили в ней текущую позицию объекта.

Vector2 position = transform.position;

Первое слово перед именем переменной, Vector2, - это тип переменной. Типы сообщают компьютеру, какие данные вы хотите сохранить, чтобы он мог получить нужный объем памяти. Vector2 - это тип данных, в котором хранятся два числа. Помните значения Transform в Инспекторе, которые используют x для горизонтального положения, y для вертикального положения и z для глубины. Эти 3 числа образуют координату. Поскольку эта игра является двухмерной, вам не нужно сохранять положение оси Z, поэтому вы можете использовать Vector2 здесь только для хранения позиций x и y.

Transform - это тоже переменная (созданная Unity, а не вами), которая содержит компонент Transform в GameObject, на котором работает скрипт.

Во второй строке, как и в первой, вы использовали точку для доступа к вещам, «содержащимся» в другом:

position.x = position.x + 0.1f;

Vector2 - это два числа, поэтому он «содержит» x и y. Здесь вы получаете доступ к значению x, которое является горизонтальным положением.

Чтобы сместить GameObject немного вправо, вы добавили 0,1 к значению x и сохранили результат обратно в x.

Теперь, сохраненная в переменной позиции в памяти, у вас есть координата x, которая находится на 0,1 единицы вправо (положительные значения перемещают GameObjects вправо, а отрицательные значения перемещают их влево).

В третьей строке вы сохранили эту новую позицию внутри позиции Transform:

transform.position = position;

До появления этой строки кода вы только изменяли копию, как будто выполняли вычисления на черновике. Теперь, когда у вас есть новый результат, вам нужно вернуть его компоненту Transform, чтобы он действительно знал, что нужно переместить GameObject 0.1 вправо.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-11-01 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: