Как сделать ритм игру unity

Добавил пользователь Евгений Кузнецов
Обновлено: 19.09.2024

Как мы все знаем во многих играх разработчикам выбирают для проведения боя пошаговую систему. Такая система пользуется популярностью в пошаговых играх, например, серия игр герои. Я разумеется не буду рассматривать весь механизм работы пошаговой игры, такие моменты как переход от “обычного” режима в режим боя. Все это реализовать будете вы, так как в каждой игре это все выглядит по своему и написать один уникальный скрипт не получится. Хотя, если там будет куча странного кода, то получится, но производительности это не добавит.

Я буду рассматривать пошаговый бой как команда на команду. Одной командой управляет игрок, другой командой компьютер. Не забываем, что все приходит во время игры и игрок не должен понимать, что ему противостоит компьютер, поэтому обязательно добавляйте в код какие-нибудь паузы которые задержат решение компьютера о том как проводить атаку и все такое. На моей карте боя будут две команды по два бойца. Процесс боя будет заключаться в следующем: Атакует одна из команд, какая именно будет зависит от входных параметров. У меня их нет потому, что у меня одна сцена. В вашем случае должен будет быть входной параметр, который будет определять, кто первым атакует. Когда все члены атакующей команды завершат свои атаки, передаем управление второй команде.

Как создать игру на Unity

Программирование и разработка

Как создать игру на Unity

Из этой статьи вы узнаtте, как начать создавать игру с помощью Unity, начиная только с идеи. Кроме того, вы изучите хороший метод запуска для создания игр Unity 2d с нуля.

Важно отметить, что это руководство не сделает из вас полноценного разработчика Unity и не научит программировать. Однако это поможет вам быстро заставить что-то работать на экране.

Unity — один из самых популярных доступных бесплатных игровых движков. Он также имеет отличный 2D-движок, поэтому 3D-модели не нужны. Ещё одной привлекательной особенностью Unity является то, что он не требует обширных знаний в области программирования.

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

Ниже приведено пошаговое руководство по созданию 2D-игры в Unity для начинающих.

Шаг 1. Идея

идея

Шаг первый довольно прост. Вы легко можете сделать это в уме.

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

  • Это платформер, игра с видом сверху или, может быть, изометрическая?
  • Какая будет тема и основная история?
  • Как это будет выглядеть?
  • Какой движок вы будете использовать?
  • Главное, чем ваша игра будет выделяться? Какую новую механику или идею он представляет или что будет хорошо?

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

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

Как только у вас появится несколько идей о том, что делать, у вас будет руководство, с которого можно начать. Теперь можно переходить к прототипированию.

Шаг 2. Получите инструменты

Чтобы создать игру в Unity, вам понадобится Unity. Вы можете скачать персональную версию здесь . Имейте в виду, что личная версия необходима только в том случае, если вы не получили более 100 тысяч долларов для финансирования или дохода от своей игры.

Получите инструменты

Мы используем Unity версии 2019.2.14f1

Вы также можете создавать графику для своей игры. Поскольку Unity использует пиксельную графику , я настоятельно рекомендую использовать GraphicsGale . GraphicsGale бесплатна, проста в использовании и обладает множеством функций. Однако вы можете свободно использовать любой удобный вам редактор, будь то Photoshop, Blender или Windows Paint.

Шаг 3. Настройте свой проект

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

Для этого шага мы используем GraphicsGale, но вы можете использовать любой редактор, который вам нравится. Начните с того, что сделайте замену стен в игре. (Помните, вы всегда можете сделать больше позже.) Стены должны быть размером 100 на 100 пикселей.

Вот пример

Сделайте что-нибудь быстрое и лёгкое, чтобы представить элементы нашей игры.

После завершения загрузки Unity вы можете открыть Unity Hub и начать новый проект. Назовите проект как хотите, но не забудьте выбрать 2D для настройки проекта.

Обязательно используйте 2D-шаблон

Обязательно используйте 2D-шаблон.

Настройте свой проект2

В Unity есть невероятная функция под названием Unity Asset Store. Asset Store полон готовых фрагментов игры, таких как модели, текстуры, утилиты или программы AI. Они доступны для продажи, а некоторые даже предлагаются бесплатно. Из-за этого легко создать игру, не создавая слишком много ресурсов самостоятельно. Вы можете просто взять заранее запрограммированную игровую механику и прикрепить её к собственному арту.

Настройте свой проект3

Загрузите стандартные ресурсы из Unity Store.

Вам также понадобятся некоторые инструменты для создания 2D-игр в Unity, которые вам немного помогут. Перейдите по этой ссылке и загрузите Git в виде zip-архива. Затем разархивируйте и перетащите папку внутри в обозревателя ресурсов. Возможно, вам придётся перезапустить Unity после этого, чтобы он работал правильно.

Теперь у вас должно быть всё необходимое для начала работы.

Настройте свой проект4

Шаг 4. Создайте карту

Создайте карту

Вы также захотите добавить свою иллюстрацию-заполнитель в браузер ресурсов. Просто перетащите всю папку из окон в обозревателя ресурсов.

Создайте карту2

Ваша новая палитра плитки, там ещё ничего нет.

Чтобы добавить искусство в палитру, просто перетащите свой заполнитель для блоков уровня в окно выше.

Затем создайте что-нибудь для рисования с помощью палитры. В окне Hierarchy щёлкните правой кнопкой мыши и выберите 2D Object> Tilemap.

Создайте карту3

Щёлкните здесь правой кнопкой мыши, чтобы создать карту листов.

Теперь у вас должна быть возможность рисовать на своём уровне. Постарайтесь пока держать его в пределах границ камеры и добавить несколько платформ, на которые можно прыгать.

Создайте карту4

Наконец, нужно позаботиться об одном последнем шаге. Прямо сейчас ваша карта — это только визуализация, и ваш персонаж не будет сталкиваться со стенами, которые вы построили. Фактически, ваш персонаж провалится прямо сквозь пол. Вы должны добавить свойство физики, чтобы игра знала, что эти квадраты имеют значение, и они созданы не только для того, чтобы красиво выглядеть.

Создайте карту5

Компонент, который вам нужно добавить, называется Tilemap Collider 2D. Просто воспользуйтесь окном поиска, чтобы найти его и добавить на карту листов.

Шаг 5. Сделайте персонажа

Сделайте персонажа1

Помните, как к вашей тайловой карте был прикреплён компонент столкновения? Что ж, нашему персонажу нужно много компонентов, прикреплённых к нему, чтобы функционировать. Вместо того, чтобы каждый раз перестраивать каждый компонент, вы можете создавать префабы, которые будут служить игровыми объектами. Их можно использовать снова и снова.

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

Сделайте персонажа2

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

Хотя вы можете использовать его сейчас, вам следует создать собственного персонажа, который в итоге заменит его. Его спрайт и анимация будут служить вам заменой, пока вы продолжаете развиваться вокруг него.

Сделайте персонажа3

Поскольку идея игровой механики в этом уроке состоит в том, чтобы встретить двух персонажей, вам следует перетащить в сцену второго мальчика-робота, возможно, с другой стороны. Таким образом, каждый раз, когда вы играете в игру, вам придётся координировать свои действия, чтобы встретить двух персонажей.

Шаг 6. Дорожная карта и сборка

Дорожная карта — один из многих шагов, которые вы можете предпринять отсюда. Теперь, когда у вас есть прототип, вся трудоёмкая работа по настройке выполнена.

Например, ваша дорожная карта может выглядеть примерно так:

  1. Добавить систему монет.
  2. Добавить здоровье и урон игрока.
  3. Основные враги.
  4. Проверка ошибок.
  5. Улучшить базовое искусство.
  6. Создавайте игровые сценарии и выигрывайте.
  7. Добавить элементы пользовательского интерфейса.
  8. Добавить систему меню.

Это начинает рассматривать возможности игры в перспективе и помогает увидеть, сколько работы осталось между этим прототипом и готовой игрой. Знать это расстояние важно, так как у вас не всегда есть неограниченное время и внимание, которые можно вложить в игру.

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

Заключение

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

Делаю игру про штампование. За каждый штамп (UI Button) должно даваться по 1 очку. Необходимо следующее: когда кол-во очков будет от 40 до 80 (рандомное одно число) на экране появляется надпись (UI Text заранее заготовлена и скрыта) "LEVEL COMPLETE" и с каждым уровнем диапазон рандомных чисел, значение которых необходимо для завершения уровня увеличивается на 10 (Например: от 50 до 100 и т.д.). Кто сможет, пожалуйста оставьте код и приметки как и что. Заранее спасибо!


Счётчик очков работает не правильно
Делаю змейку и решил добавить счётчик съеденных яблок, только проблема в том,что он начинает.


Как сделать чтобы каждые 100 очков проигрывалась музыка?
Всем привет, вопрос, как сделать чтобы каждый 100 очков проигровалась музыка?)

Как сделать счетчик монет?
То есть при смерте у меня выпадает 5 монет с моба1, 10 с моба2. Проблема у меня в том, что я не.

Начал работу над ИИ в своём проекте, посмотрел уроки на YouTube,полазил по оф.сайту в поисках информации по системе навигации , так вот, как я понял ничего толкового стандартными средствами не сделать или я ошибаюсь? Если тут есть люди которые могут подсказать в этом деле(насчёт работы с ИИ в юньке, что выбрать для начала) то помогите пожалуйста.

Стандартными, разве что, стейт-машину аниматором

Ceetrus
> Стандартными, разве что, стейт-машину аниматором
Хм, хорошо, буду юзать RayCast'ы для своих целей :)

Mr_God
> по системе навигации , так вот, как я понял ничего толкового стандартными
> средствами не сделать

А каковы критерии толковости?

Mr_God
Можно и стандартными инструментами, зависит от задач. 2д, 3д,сверху,сбоку и т.д.

Для навигации можно и а* использовать, не обязательно навмеш. Алгоритм очень прост.
Для интеллекта можно использовать систему событий с весами, которую привязать к различным раздражителям.
Таким как - время суток, наличие игрока и так далее.
А далее, в зависимости от значимости события - та, либо иная реакция.
Было бы круто использовать блендинг для событий, чтобы порождать неоднозначные реакции.

Virtex
> А каковы критерии толковости?
Ну к примеру, я делаю 3D шутер, не суть важно какой и зачем, так вот, мне именно нужно сделать так что-бы НПС обнаруживал игрока в определённом радиусе перед собой, что-то типа реального обзора или сканирования местности перед собой,называйте как хотите, за неделю я сделал что-то подобное с помощью RayCastов, но весь прикол в том что этот способ не совсем рабочий, НПС обнаруживает игрока, в определённом радиусе около себя, но рэйкасты на дальнем расстоянии где-то дальше 20 кубов(метров т.е.) попросту разлетаются в стороны и не засекают игрока, конечно если бегать из стороны в сторону то игрока НПС "видит" , ещё на ближней дистанции не всегда НПС "видит" игрока , т.е. в скрипте есть переменная bool типа которая показывает "видит-ли" НПС игрока, а сейчас немного говнокода, у меня есть три скрипта , один скрипт отправляет луч, второй скрипт обрабатывает информацию, а третий основной скрипт НПС уже всё распределяет на свои места, я в нём пишу методы взаимодействия НПС и Игрока, скину скрипт который отправляет лучи, остальные скидывать нету смысла, т.к. с ними всё нормально p.s. npcAI.radiusRay равен 0.25 эту цифру я вычислил экспериментальным путём, т.к. если сделать больше то вблизи игрока лучи почему-то не буду засекать, а если меньше то аналогично но с дальними дистанциями , и в проверке на дистанцию не обращайте внимания на цифру 10, это я уже начал делать хоть какие-то взаимодействия с игроком, к примеру что-бы при подходе игрока НПС с ним здоровался.

228 | Помогите с AI в Unity

И напоследок. Это количество пустых GameObject'ов на которых висит этот скрипт, может быть в этом проблема ) , я их все вручную поворачивал так что-бы они охватывали радиус в 90 градусов

Salamandr
> Можно и стандартными инструментами, зависит от задач. 2д, 3д,сверху,сбоку и
> т.д.
3d, для шутера, хе-хе, который пока без ИИ нельзя назвать таковым

91 глаз 0.01MOA. Чувак, ты в курсе, что можно вычислить угол между направлением взгяда персонажа и направлением от персонажа до игрока? И прикинь, оно внезапно будет работать лучше и быстрее, чем 91 глаз. А еще можно вычислить dot-product, что будет еще быстрее. Круто, да?

+ надо игрока кинуть на слой Player

mahrizh
> До циклов за год не дошел?
Кек, делал я и с помощью циклов, да тоже криво получалось .
Dampire
> Чувак, ты в курсе, что можно вычислить угол между направлением взгяда персонажа
> и направлением от персонажа до игрока? И прикинь, оно внезапно будет работать
> лучше и быстрее, чем 91 глаз. А еще можно вычислить dot-product, что будет еще
> быстрее. Круто, да?
Не знал, можешь рассказать поподробнее? Или скинуть материал по этому?

mahrizh
> + надо игрока кинуть на слой Player
Сейчас попробую, посмотрю что да как

Читайте также: