Для более детально изучения основных возможностей построения платформенной игры в среде Юнити pro, нужно понимать общее понятие сути платформера.

Платформер (Platformer) – направление компьютерных игр определённого жанра, основной сюжетной линией является прыгание по платформам, взбирание по лестницам, а так же сбор необходимых предметов для завершения уровня. Некоторые с предметов могут наделять персонажей особыми навыками, примеры:

Пример платформера

  • Сила удара;
  • Защитный щит;
  • Огромные прыжки и скорость.

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

Пример платформера Android

Уровни, как правило, разбиты на сектора со скрытыми подходами в стенах или высокими, труднодоступными местами. Такого рода ступени игры характерны нереалистичностью и рисованной графикой.

Что бы закрепить и лучше усвоить информацию, создадим игру для системы Android.

Предварительная настройка под Android

Перед тем как уже сформирована суть и есть примерные наброски сюжета нужно сделать вход и настройку системы:

Создание 2D проекта

  • Запускаем приложение Unity 3D, нажатием на ярлык рабочего стола;
  • В появившемся окне выбираем «New Project», прописываем имя проекта, обязательно выбираем локацию для сохранения, ставим отметку напротив модуля 2Д и нажимаем кнопку «Create Project»;
  • При открытии рабочей области, если такие модули как Иерархия, Инспектор или тому подобное имеют не удобное расположение, можно их передвинуть, нажав ПКМ и перетащив;
  • Далее выбираем File (Файл) – Build Setting, если выбираемый проект компилируется под файловые системы типа Windows, MAC и т.п., то выбираем Android и нажимаем «Switch Platform»;
  • В окне Project необходимо создать папку «Scenes», в которой будут содержаться все уровни, создаваемые пользователем;
  • Заходим в меню Файл, выбираем Save Scene as.. и сохраняем сцену в созданную папку, таким образом, будет сохранён проект, с которым ведётся работа, и в случае выхода с Юнити всегда можно вернуться к той части, на которой ранее остановились.

Редактор платформера

Поиск и подготовка компонентов

Следующим будет поиск в сети Интернет понравившееся картинки главного персонажа и платформы, и шагаем вперёд:

  • Создадим в окне Project папку «Sprites», все картинки в играх, причём в 2Д играх, называются Спрайтами;
  • Копируем выбранные ранее изображения в эту папку, и больше не каких манипуляций по настройкам с ними не делаем;
  • Перетягиваем пейдж героя и основу платформы в область сцены, так как они отображаются непропорционально, нужно их проредактировать:
  • Кликаем по персонажу героя;
  • В компоненте Инспектор, а именно Трансформере выставляем значения «Scale» таким образом, что бы выровнять пропорции по отношению к платформе;Параметр Scale
  • Далее корректируем камеру, находим в окне Иерархии Main Camera и в компонентах Size проставляем число приемлемое для просмотра, например 8, а также выставляем дальность камеры в пределах 100, это значение проставляем в строке Far;
  • После добавляем к персонажу Box Collider 2D, нажимая на кнопку «Add Component» и выставляем коллайдер по его размерам. Размер проставки желательно сделать в половину персонажа, так как будут применены другие коллайдеры. Отметим, что компоненты добавляются только 2Д, так как игра создаётся именно в этом формате;
  • Добавляем Circle Collider 2D, он поможет в дальнейшем взбираться герою на разные поверхности, его тоже располагаем по размеру и не много ниже Box Collider;
  • Не забываем о силе тяжести, добавим Rigidbody 2D, это значит, что спрайт попадает под контроль физического механизма.
  Ошибка Unity Web Player в Блокаде

Настройка главного персонажа

Обучение процесса перемещений

Для того, что бы можно было управлять функционалом героя, нужно заранее сделать обучение. Тут понадобиться:

  • Создание папки Scripts, сюда добавим С# Script, под названием «PlayerControl»;
  • Перемещаем скрипт на игрока, он отобразится в окне Инспектор;Добавление скрипта
  • Двойным нажатием по скрипту заходим в текстовый редактор и начинаем корректировку, прописываем несколько переменных:
  • Первая public float, указываем значение speed = 20 ft, это скорость с которой будет двигаться объект;
  • Вторая private Rigidbody2D rb, это связующая переменная для компонента Rigidbody, он будет стартовать при запуске игры и эго нужно присвоить как rb = GetComponent <Rigidbody2D> ();
  • Теперь задаём параметры для движения, в зависимости от того в какую сторону будет производиться движение. Для этого создаём новую переменную float moveX = Input.GetAxis («Horizontal»). Это означает, что при выборе движения персонаж будет плавно передвигаться в заданную сторону;
  • Теперь необходимо именно двигать игрока, здесь используем rb с использованием функции MovePosition с подстановкой изначальной позиции объекта: rb.MovePosition (rb.position + Vector2.right * moveX * speed * Time.deltaTime).
  • Внеся все значения можно просмотреть, что из этого вышло, нажав на кнопку Play.

Первый скрипт программы

Важно при просмотре в компоненте Rigidbody 2D выставить заморозку вращения, здесь заходим в строку «Constants» и ставим отметку на «Freeze Rotation». Так же выставляем значение гравитации «Gravity Scale» примерно 20 единиц и в меню Edit – Project Settings – Physics 2D по Y значение -20.

Обучение процесса прыжков и вид сопровождение камеры

Что бы задать движения в виде прыжков, нужно зайти в тот же текстовый редактор, где заданы значения перемещений, и прописать:

  • Добавляем новую проверку if (Input.GetKeyDown) (KeyCode.Space)), таким образом задана клавиша Spaces (Пробел) для привода прыжка;
  • Следующее значение задаст силу толчка rb.AddForce (Vector2.up * 8000).
  Как поменять язык в Unity 3D

Добавление прыжка персонажу

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

  • В папку скриптов добавляем новый скрипт под названием «CamMove» и перетянуть его в область Иерархии на Main Camera;
  • Двойным нажатием на скрипт в Инспекторе открываем окно текстового редактора, по умолчанию там проставлены две библиотеки, с которыми не будет связана работа, и прописываем переменную public GameObject Player. Данная установка даёт возможность всегда следить за игроком в игровом пространстве;
  • Указываем параметры позиции для камеры transform.position = new Vector3 (player.transform.position.x, player.transform.position.y, -10ft);

Скрипт для камеры

-10ft выставляется для значения Z, что бы герой не вращался в пространстве.

  • Теперь кликаем на Main Camera и перетаскиваем ссылку на игрока к скрипту Cam Move.

Свойство камеры

Что бы объект ни перемещался по одной платформе, её стоит продублировать:

  • Создаём папку под названием «Prifabs»;
  • Копируем в неё, с помощью перетягивания, платформу.

Таким простым способом созданный прифаб можно копировать, создавая большее игровое пространство и увеличивая уровни сложности. Для клонирования выполняется комбинация Ctrl+D.

Создание точки старта

При компоновке всех частей созданного проекта, иногда возникает вопрос с обратным прохождением уровней с определённой точки. Это так называемая точка старта, откуда игрок, может восстановиться и продолжить игру. Если не задать таких параметров, то предмет, например, в случаи падения с платформы, может падать бесконечно. Для её создания понадобится:

Объект Respawn

  • Создаём новый пустой объект под названием «Respawn», это точка, при которой игрок будет появляться в случае проигрыша;
  • Задаём точные координаты персонажа в компоненте Трансформ. Для удобства можно пометить точку иконкой, что бы было понятно от куда начинать;
  • Далее создадим 3Д модель Куб и присвоим название DieSpace, здесь же в Инспекторе удаляем компоненты Mesh-фильтра, оставим только Box Collider, но выбираем Box Collider 2D. Коллайдер растягиваем по Х и Y с перемещением на то место, где будет считаться, что игрок проиграл;

Закрепить созданную точку нужно с помощью скрипта:

Скрипт DieSpace

    • В папке скриптов создадим файл с названием DieSpace и перемещаем его на коллайдер;
    • Двойным нажатием открываем редактор, и удаляем две не нужные библиотеки в начале и после;
    • Прописываем переменную public GameObject respawn и функцию:
      • void OnTriggerEnter2D (Collider2D other);
      • if (other.tag == «Player»);
      • transform.position = respawn.transform.position.
  • Открываем Юнити и проверяем через запуск Игрового режима правильность заданных параметров.

Тест созданной игры

В заключении можно выделить то, что созданный 2Д платформер работает. Здесь нет сложного сюжета, но представлены базовые возможности:

  • Персонаж может двигаться и прыгать;
  • Установлены платформы, на которых происходит игровой процесс;

Есть точки возобновления и проигрыша.

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
Adblock
detector