Как сделать стамину в юнити

Обновлено: 07.07.2024

Материалы используются вместе с прикрепленными к GameObject мешем или системой частиц. Они играют важнейшую роль в том, как будет выглядеть ваш объект. Материал включает в себя Shader , используемый для рендеринга Mesh или Particles , поэтому данные компоненты не будут отображаться без какого-либо материала.

У материала с шейдером диффузии есть только два свойства - цвет и текстура.

У материала с шейдером диффузии есть только два свойства - цвет и текстура.

Свойства

Свойства материала изменяются в зависимости от выбранного шейдера . Наиболее часто используемые свойства:

Свойство: Функция:
Shader Шейдер, который использует материал. Для получения дополнительной информации по шейдерам прочтите руководство по встроенным шейдерам.
Main Color Произвольный цвет, который используется как оттенок. Используйте белый цвет, если оттенок не нужен.
Base Отображаемая Texture .

Детали

Для помещения текстур на GameObject’ы используются материалы. Нельзя добавить текстуру напрямую без материала, поэтому при добавлении текстуры автоматически будет создан новый материал. Правильная последовательность действий следующая: создать материал, выбрать шейдер, и выбрать ассет(ы) текстур. Для получения дополнительной информации взгляните на страницу руководства по материалам.

Выбор шейдера

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

Выпадающее меню шейдеров

Выпадающее меню шейдеров

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

Задание свойств шейдера

Количество свойств, которые появляются в Inspector , зависит от выбранного шейдера.

Свойства зеркального шейдера (Specular shader) Свойства Normal mapped шейдера Свойства Normal mapped Specular шейдера

Типы свойств шейдера:

Свойство: Функция:
Color pickers Используется для выбора цветов.
Sliders Используется для настройки числовых значений из заданного интервала.
Textures Используется для выбора текстур.

Размещение текстуры

Расположение текстуры может быть изменено с помощью свойств Offset и Tiling .

🏓 Создаем 2D-игру на Unity: инструкция для новичка

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

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

Двумерные игры сравнительно просты: для них не требуется сложных 3D-моделей, программный код по сравнению с 3D-проектами выглядит понятнее. Такие игры популярны как на десктопах, так и на мобильных устройствах. Unity также позволяет разрабатывать игры и для браузеров.

За последние годы вышло много популярных двумерных игр:

Программная реализация 2D-игр проще не только из-за отсутствия третьего измерения: на самой сцене меньше объектов, вместо трехмерных моделей плоские спрайты, вместо скелетной анимации – покадровая. А еще 2D-игры проще портировать на другие платформы – легче найти новую аудиторию.

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

Предварительно рассмотрим основные понятия Unity, без понимания которых будет проблематично создать игру:

Предполагаем, что вы уже установили редактор и создали аккаунт на портале Unity.

В первую очередь создадим новый проект и откроем его настройки (Edit → Project Settings). Во вкладке Editor установим параметр Default Behaviour Mode в значение 2D

Настройка проекта Детальная настройка проекта

Следующим шагом сохраним текущую активную сцену, назвав ее, например, Scene1. Теперь создадим основные игровые объекты: ракетку, мяч и менеджер игры, в котором будет храниться основная логика игры.

1. Создаем пустой объект, переименовываем в GameManager.

Создаем пустой объект

Создаем пустой объект

3. Создаем квадратный спрайт, называем его Pad (Assets → Create → Sprites → Square). Аналогично создаем круглый спрайт Ball (Assets → Create → Sprites → Circle). Масштабируем спрайт Pad со следующими параметрами – x:0.5, y:2.5, z:1.

Создаем спрайты

Создаем спрайты

4. Создаем префабы для Pad и Ball, после чего добавляем к ним компонент Box Collider 2D (включаем параметр Is Trigger) и компонент Rigidbody 2D (выставляем параметр Body Type в значение Kinematic).

Добавляем .компонент Box Collider 2D Настраиваем.компонент Box Collider 2D Добавляем компонент Rigidbody 2D Масштабируем спрайты

6. Заполняем скрипты следующим кодом.

GameManager.cs Ball.cs Pad.cs

6. Добавляем к префабу Ball и Pad теги с аналогичными именами. Выделив префабы, в инспекторе мы можем видеть выпадающий список тегов. Там же расположены и кнопки для добавления и редактирования тегов.

7. В настройках камеры выставляем параметр Projection в значение Orthographic, а параметр Clear Flag – в значение Solid Color.

Настройка камеры

Настройка камеры

8. Настраиваем кнопки, как показано на следующих скриншотах (Edit → Project Settings → Input Manager).

Настройка ввода, основное Настройка ввода, первый игрок Настройка ввода, второй игрок

Вот и всё, игра готова!

Пинг-понг, итоговый результат

Пинг-понг, итоговый результат

Билд для платформы Windows

1. Официальный туториал от Unity, где детально рассмотрен процесс создания roguelike RPG.

2. Youtube-канал Brackeys , где можно найти серию видеоуроков по созданию 2D-платформера.

3. Youtube-канал N3K EN содержит множество уроков как по отдельным компонентам Unity, так и полноценные серии уроков по созданию игр с нуля.

Если у вас мало опыта в разработке игр на Unity, мы рекомендуем обратить внимание на факультет разработки игр GeekBrains . Материал хорошо структурирован и содержит все необходимое для того, чтобы стать профессиональным Unity-разработчиком.

В числе прочего вы разработаете 2D-платформер с физическими загадками и динамическим освещением, научитесь портировать его на мобильные устройства. Кроме того, разработаете полноценную браузерную стратегию, а также игру в жанре двухмерных гонок.

По окончании обучения вы будете иметь портфолио из 4 игр, которое можно показать на собеседовании. Если же какая-то часть материала будет непонятна, вы всегда можете обратиться к персональному преподавателю.

В интернетах большое количество статей об интерфейсе и возможностях Unity. Пора и нам рассказать вам о том, насколько просто работать с основными объектами в сцене.

Рассматриваемые темы в статье

  • Камеры
  • Многоугольники, ребра, вершины и меши
  • Материалы, текстуры, и шейдеры
  • Физика твердых тел
  • Столкновение (Collision)
  • Идея Unity
  • Путь падавана Unity
  • Ассеты
  • Игровой объект
  • Компоненты
  • Сценарии
  • Шаблоны игрового проекта

Игровая сцена в разметке объектов Unity

Основные механизмы Unity — Unity — DevTribe: инди-игры, разработка, сообщество

Прим. Данные трактовки названий являются свободным переводом английских наименований в интерфейсе Unity. Если вам это не нравится или вы используете свою терминологию (или еще хуже неологизмы вроде "колижены" или "геймобджекты") - это ваши проблемы :)

Камеры

Камеры существуют в трехмерном мире, поскольку они являются портами вывода (View port) результирующего изображения на экран. Камеры могут быть расположены в любой точке игрового мира Unity, имеют поле зрения (FOV), которое представляет собой форму пирамиды. Они имеют много различных свойств и могут быть заскриптованы и вписываться в необходимый сценарий вашей игры.
С изменением параметра поля зрения (FOV) трехмерной камеры - меняется и порт вывода (view port).

Основные механизмы Unity — Unity — DevTribe: инди-игры, разработка, сообщество

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

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

Многоугольники, ребра, вершины, и меши

При построении трехмерных фигур все объекты в конечном счете составляются из связки обычных двухмерных форм, известных как многоугольники. При импорте моделей из среды моделирования в Unity, все многоугольники преобразуются в треугольники, они же полигоны. В свою очередь треугольник состоит из трех вершин, связанных ребрами. Зная эти вершины, движок игры в состоянии производить вычисления точек столкновений, используя сложный алгоритм обнаружения с коллайдером Меша. Такие вычисления позволяют точно определить местоположения пересечения, например точка попадания пули в контексте разработки шутера.
Комбинируя множество связанных между собой полигонов, используя трехмерное моделирование, позволяют Вам строить сложные формы, известные, как Меши (Mesh).

Основные механизмы Unity — Unity — DevTribe: инди-игры, разработка, сообщество

Во время разработки игры, разработчику крайне важно понимать важность количества отображаемых полигонов на экране. Чем выше число полигонов, тем больше работы требуется проделать компьютеру, прежде чем вывести все необходимые объекты на экран. Это именно то, что мы могли наблюдать в прошедшие пару десятков лет - увеличения уровня детализации от ранних трехмерных игр до сегодняшнего дня. Просто сравните визуальное оформление таких игр, как ХХХ (199*) и YYYY (200*) и ZZZZ (201*). Это происходит в результате появления более производительного оборудования, и теперь разработчики могут позволить размещать на экране более высокополигональные модели и эта тенденция будет неизбежно продолжаться. Но, всегда помните, что оптимизацией не стоит пренебрегать.

Материалы, текстуры, и шейдеры

Материалы (Materials) - общее понятие ко всем трехмерным формам, поскольку они дают возможность настроить визуальных характеристики трехмерной модели. От основных цветов до карты отражения, содержащей информацию об окружающих объектов. Материал работает с шейдером (Shader), который является сценарием, который отвечает за способ отрисовки того или иного объекта, на который он был применен.

Основные механизмы Unity — Unity — DevTribe: инди-игры, разработка, сообщество

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

Создавая текстуры для игры в графическом пакете, такие как Photoshop, вы должны знать о допустимых разрешениях, которые поддерживает игровой движок Unity. Текстуры, должны быть квадратными и размер стороны, должен являться степенью двойки. Например:

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

Физика твердых тел

Внутри игрового движка, встроен физический движок (Physics Engine), который позволяет промоделировать взаимодействие объектов между собой по основным физическим законам реального мира. В Unity используется Nvidia PhysX, самый популярный и весьма точный коммерческий физический движок.
В движке игры не каждый объект моделируется, как физический объект. Во-первых, потому что это требует большой обработки данных, и во-вторых, потому что это просто не имеет смысла. Например, в трехмерной игре, имеет смысл сделать объект "Автомобиль" настроить, как физический объект, но для окружающий объектов, таких, как деревья, стены и т.д. - это не имеет смысла, т.к. они являются статическими объектами на сцене. Поэтому, разрабатывая игру, добавляйте компонент Твердого тела (Rigidbody, не путать с Rigidbody 2D), только тем объектам, которые вы хотите отдать под контроль физического движка.

Физический движок для игр использует Динамику) для моделирования твердого тела, создавая реалистичное движение. Это означает, что вместо статичных объектов трехмерного мира, будут динамическое объекты, имеющие следующие дополнительные свойства:

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

Обнаружение столкновения

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

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

Идея Unity

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

Давайте рассмотрим простой пример.

Путь падавана Unity

Если бы я хотел добавить в игру живой шар, то я начал бы со сферы. Это можно быстро и легко сделать с помощью меню Unity, это даст Ваш новый игровой объект с мешем сферы, и компонент Renderer, чтобы сделать этот объект видимым на экране. Также я могу добавить на мою сферу компонент твердого тела (Rigidbody). Это скажет Unity, что к данному объекту необходимо применить физический движок. С этим компонентом приходят такие настройки, как масса, сила тяжести, способы применения силы к объекту, коэффициенты трения и т.д.

Основные механизмы Unity — Unity — DevTribe: инди-игры, разработка, сообщество

Более того я хотел бы добавить небольшую плоскость и разместить её ниже уже созданного шара. Это делается также просто, как и создание шара - с помощью меню Unity. Если мы запустим игру, то увидим, что шар просто упадет плашмя на плоскость. Но, что, если я хочу, чтобы он повел себя, как обычный футбольный шар, который бы еще и подпрыгнул? Это просто! У компонента коллайдера (Collider) есть свойство, которое позволяет задать физический материал (Physics Material). Это свойство позволяет настраивать поведение объекта при столкновении с определенными поверхностями других объектов. Здесь мы можем выбрать уже существующие материалы, в данному случае нам подойдет - !!упругий". При повторном запуске, когда шар упадет на плоскость, он отскочит.
В итоге, простая сцена готова за пару щелчков мыши!

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

Ассеты

Ассеты (Assets) - это стандартные блоки всех проектов Unity. От графики в форме файлов изображений до трехмерных моделей и звуковых файлов. Unity обращается к этим файлам, которые вы будете использовать во время создания игры, как ассеты. Это как раз та причина, почему в любой папке проекта Unity, все используемые файлы хранятся в основной папке "Assets"

Основные механизмы Unity — Unity — DevTribe: инди-игры, разработка, сообщество

Сцены

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

Игровые объекты (Game Objects)

Когда ассет используется на сцене игры, то он становится игровым объектом (Game Object). Все игровые объекты содержат по крайней мере один компонент для старта - компонент Transform. Данный компонент, позволяет движку игры управлять положением объекта в игровом мире, он указывает координаты позиционирования, вращения и масштабирования объекта для каждой из существующей в игре оси - X, Y, Z. Так же, вы можете передать это объект в параметры какого-либо скрипта и там управлять им, например установив ему необходимую позицию, угол вращения, или масштаб. От этого базового объекта вы сможете в дальнейшем с легкостью переходить к другим его компонентами. Вы так же в праве добавлять новые компоненты на игровой объект, добавляя необходимые функциональные возможности, чтобы воспроизводить сценарий игры, который Вы только можете вообразить.

Компоненты (Components)

Компоненты (Components) могут быть разных видов. Они могут быть сделаны для того, чтобы расширять поведение объекта, определять его, или влиять на другие аспекты функций объекта в игре. Прикрепляя компонент к объекту, Вы сможете немедленно применить новые части игрового движка к Вашему объекту.

Основные механизмы Unity — Unity — DevTribe: инди-игры, разработка, сообщество

Общие компоненты разработки игры уже реализованы, как встроенные в Unity, такие как компонент твердого тела (Rigidbody), освещение (Light), камеры (Camera), генераторы частиц (Particles Emitters), примитивные объекты (Primitives) и т.д. Для того, чтобы все это оживить необходимо разрабатывать сценарии (Scripts), которые также являются компонентами объектов в Unity.

Сценарии (Scripts)

Сценарии (Scripts) - это компоненты Unity, и основная часть разработки игры и поэтому заслуживают, отдельного ключевого понятия. Unity предлагает на выбор три разных языка программирования для разработки скриптов:

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

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

Шаблон игрового объекта (Prefab)

Использование игрового движка Unity крутится вокруг использования различных игровых объектов (GameObject), размещенных в игровом мире. Unity предоставляет возможность хранить такие объекты со всеми их свойствами как ассеты (Assets) проекта, которые Вы сможете повторно использовать в различных частях Вашей игры. Вы сможете изменить параметры и компоненты игрового объекта, основанного на шаблоне, индивидуально.

Рассмотрим "Ящик" в качестве примера. Допустим, что Вы настроили вес вашего объекта, написали скрипт поведения для её разрушения и наверняка, Вы, захотите использовать этот объект в игре ни один раз. Шаблоны (Prefab) позволяют Вам хранить объект в полной комплектации, со всеми компонентами и текущими конфигурациями. Они сопоставимы понятию MovieClip в Adobe Flash, думайте о шаблонах (prefabs) просто как о пустых контейнерах, которые вы можете заполнять объектами, чтобы сформировать набор данных, который Вы вероятно переработаете, и все эти изменения отразятся на объектах сцены, основанных на этом шаблоне.

На этом основная вводная в понятия Unity заканчивается. Оставляйте ваши вопросы в комментариях.
Буду рад конструктивной критике.

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

Unity как изменять начение голода
имеется скрипт голода и префаба бургера. нужно чтобы при нажатии на бургер который размещен на.

Как выводить и изменять параметры.
Устройство - блок управления станком. Требуется выводить\изменять параметры работы станка. Исходим.

Как изменять параметры виджетов?
Такая проблема, допустим мне нужно, чтобы при запуске приложения происходила какая-нибудь анимация.


Как изменять CSS параметры при скроллинге чтоб блоки не пересекались?
Добрый день! Хотел это сделать на простом CSS. Но похоже без вариантов. Будем делать на JS. На.

AlexKeys, уверены, что Blur в вашем случае без нижнего подчеркивания нужно писать? Уверены, что вообще к нужному вам инстансу материала обращаетесь?

AlexKeys, судя по вашему скриншоту, "Blur" — это лишь лейбл параметра _Size для отображения в Инспекторе.
Попробуйте следующую запись:

squakoon, Спасибо, помогло. Так то я уже пробовал _size вводить, но не работало. Оказалось, дело в blTime.

Решение

Единственное условие, вам нужно непосредственно перед местом присваивания переменной blu значения true добавить еще и такое:

squakoon, все равно не работает. После нажатия на кнопку устанавливается значение 0.07180133 и больше ничего не происходит.

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

squakoon, Дружище, спасибо. Извини, один момент не учел из твоего кода и поэтому не работало. Можешь добавить меня в свои друзья, мало ли помощь понадобится. Обещаю не надоедать)


Unity как ввести в скрипт префаб и изменять его там (добавлять новые файлы к нему или удалять старые)
При этом префаб НЕ должен быть размещен на сцене

Unity android подскажите со скриптом
Всем привет. Мне необходимо чтобы в игре под Android, при нажатии на кнопку, появоялся обьект на.

Unity 3D. Разработать программу по обработке магниторазведочного материала
Подскажите пожалуйста. Мне надо разработать программу по обработке магниторазведочного материала.

Изменение Цвета Кнопки Скриптом в Unity
Приветствую ! Такой вопрос, нужно при наведении на кнопку изменять ее цвет, а когда курсор.

Не могу изменять параметры электропитания
Установил Windows Embedded Standard 7. Драйвер на видеокарту стоит. Система пишет, что.

Можно ли изменять параметры разметки программно?
Может не корректно озаглавил тему, но нужно вот что: у виджета есть разметка в которой написано.

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