Как импортировать проект в unity
Перейти к содержимому

Как импортировать проект в unity

  • автор:

Importing assets

You can bring assets created outside of Unity into your Unity project. To do this, you can either export the file directly into the Assets folder for your project, or copy it into that folder. For many common formats, you can save your source file directly into your project’s Assets folder and Unity can read it. Unity also detects when you save new changes to the file and re-imports files as necessary.

When you create a Unity project, Unity creates a folder (named after your project) which contains the following subfolders:

  • Temp
  • Library
  • Assets
  • ProjectSettings
  • Logs
  • Packages

You can save or copy files that you want to use in your project into the Assets folder, and you can use the Project window A window that shows the contents of your Assets folder (Project tab) More info
See in Glossary inside Unity to view the contents of your Assets folder. Therefore, if you save or copy a file to your Assets folder, Unity imports it and it then appears in your Project window.

When you modify a file in Unity, Unity does not modify your original source file, even though you can often choose between various ways to compress, modify, or otherwise process the asset within Unity. Instead, the import process reads your source file, and creates a game-ready representation of your asset internally, matching your chosen import settings. If you modify the import settings for an asset, or make a change to the source file in the Assets folder, Unity re-imports the asset again to reflect your changes.

Warning: In most cases, the items that appear in your Project window represent actual files on your computer. If you delete them within the Unity Editor Project window, you also delete them from your computer.

Unity automatically detects files as they are added to the Assets folder, or if they are modified. When you put any asset into your Assets folder, it appears in your Project window.

The Project window shows Assets that Unity has imported into your projectThe Project window shows Assets that Unity has imported into your project

If you drag a file from your computer’s file browser into Unity’s Project window, Unity makes a copy and places it into your Assets folder. You can then access this copy from the Project window.

To bring collections of assets into your project from another Unity project, you can use Asset packages A collection of files and data from Unity projects, or elements of projects, which are compressed and stored in one file, similar to Zip files, with the .unitypackage extension. Asset packages are a handy way of sharing and re-using Unity projects and collections of assets. More info
See in Glossary .

Asset Import Settings

The simplest way to safely move or rename your assets is to always do it from within Unity’s project folder. This way, Unity automatically moves or renames the corresponding meta file. To read more about .meta files and the import process, see How Unity imports assets.

Each type of asset that Unity supports has a set of Import Settings, which affect how the asset appears or behaves. To view an asset’s import settings, select the asset in the Project View. The import settings for this asset will appear in the Inspector A Unity window that displays information about the currently selected GameObject, asset or project settings, allowing you to inspect and edit the values. More info
See in Glossary . The options that appear vary depending on the type of asset selected.

For example, an image’s import settings allow you to choose whether Unity imports it as a Texture, a 2D sprite A 2D graphic objects. If you are used to working in 3D, Sprites are essentially just standard textures but there are special techniques for combining and managing sprite textures for efficiency and convenience during development. More info
See in Glossary , or a normal map A type of Bump Map texture that allows you to add surface detail such as bumps, grooves, and scratches to a model which catch the light as if they are represented by real geometry.
See in Glossary . The import settings for an FBX file allow you to adjust the scale, generate normals or lightmap A pre-rendered texture that contains the effects of light sources on static objects in the scene. Lightmaps are overlaid on top of scene geometry to create the effect of lighting. More info
See in Glossary coordinates, and split & trim animation clips Animation data that can be used for animated characters or simple animations. It is a simple “unit” piece of motion, such as (one specific instance of) “Idle”, “Walk” or “Run”. More info
See in Glossary defined in the file.

Clicking on an image asset in the Project window shows the import settings for that asset in the InspectorClicking on an image asset in the Project window shows the import settings for that asset in the Inspector

For other asset types, the import settings look different. The various settings you see relate to the type of asset selected. Here’s an example of an Audio asset, with its related import settings shown in the inspector:

An Audio asset selected in the Project window shows the Audio import settings for that asset in the InspectorAn Audio asset selected in the Project window shows the Audio import settings for that asset in the Inspector

If you are developing a cross-platform project, you can override the “default” settings and assign different import settings on a per-platform basis.

Asset processing

Unity reads and processes any files that you add to the Assets folder, and converts the contents of the file to internal game-ready data. The asset files themselves remain unchanged, and the internal data is stored in the project’s Library folder. This data is part of the Unity Editor’s Asset Database.

Using internal formats for assets allows Unity to have internal versions of your assets ready to use at runtime in the Editor, and to keep your unmodified source files in the Assets folder. A distinction between the asset files and the internal versions means that you can quickly edit the asset file, and have the Editor pick up the changes automatically. For example, you can save .psd files directly into your Assets folder, but hardware such as mobile devices and PC graphics cards can’t process that format directly in order to render them as textures. Instead, Unity can convert an internal version into a format that those platforms can process.

Unity stores the internal representation of your assets in the Library folder, which behaves like a cache folder. As a user, you should never need to alter the Library folder manually; if you do, you might negatively affect your project in the Unity Editor. This also means that you should not include the Library folder under version control A system for managing file changes. You can use Unity in conjunction with most common version control tools, including Perforce, Git, Mercurial and PlasticSCM. More info
See in Glossary .

Note: If your project is not open in Unity, you can safely delete the Library folder, because Unity can regenerate all of its data from the Assets and ProjectSettings folders the next time you launch your project.

Complex assets

In some cases, Unity might create multiple assets while importing a single asset file. For example:

Импорт модели

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

Примечание. Основная поддержка Unity для файлов моделей файла, содержащего 3D-данные, которые могут включают определения для мешей, костей, анимации, материалов и текстур. Подробнее
См. в Словарь — это формат FBX. Однако вы можете сохранить свои 3D-файлы из большинства распространенных программ для 3D-моделирования в их собственном формате (например, .max, .blend, .mb, .ma). Когда Unity находит эти типы файлов в папке Assets , она вызывает подключаемый модуль Набор кода, созданного вне Unity, который создает функциональность в Unity. В Unity можно использовать два типа подключаемых модулей: управляемые подключаемые модули (управляемые сборки .NET, созданные с помощью таких инструментов, как Visual Studio) и собственные подключаемые модули (библиотеки собственного кода для конкретной платформы). Подробнее
См. в Словарь экспорта FBX программы для 3D-моделирования и импортирует файл. Программное обеспечение для 3D-моделирования должно быть установлено на том же компьютере, что и Unity, поэтому в большинстве случаев рекомендуется напрямую экспортировать в формате FBX из вашего приложения в папку Assets .

Доступ к окну настроек импорта

Независимо от того, какие данные вы хотите извлечь из файла модели, вы всегда начинаете с одного и того же:

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

Выберите Модель Трехмерное представление модели объекта, например персонажа, здания или предмета мебели. . Подробнее
См. файл Словарь , который вы хотите импортировать из Актив Любой носитель или данные, которые можно использовать в вашей игре или проекте. Ресурс может быть получен из файла, созданного вне Unity, например, из 3D-модели, аудиофайла или изображения. Вы также можете создавать некоторые типы ресурсов в Unity, например контроллер аниматора, аудиомикшер или текстуру рендеринга. Подробнее
См. в папке Словарь в окне Проект.

Откроется окно Настройки импорта в Инспекторе, где по умолчанию отображается вкладка Модель.

Настройка параметров импорта для конкретной модели и общих параметров

Параметры, доступные для моделей SpeedTree, сильно отличаются от других моделей. Например, на вкладке SpeedTree Model в основном представлены параметры для настройки переходов между LOD. Метод Уровень детализации (LOD) — это оптимизация, которая уменьшает количество треугольников, которые Unity должна отображать для GameObject, когда его расстояние от камеры увеличивается. Подробнее
Смотреть в Словарь .

Модели персонажей и анимированные модели предоставляют более разнообразные параметры на вкладке «Модель», что позволяет вам:

  • Используйте свойства Масштабный коэффициент и Преобразовать единицы, чтобы настроить интерпретацию единиц Unity. Например, в 3ds Max 1 единица соответствует 10 сантиметрам, а в Unity 1 единица соответствует 1 метру.
  • Использовать сжатие сетки, включить чтение/запись, оптимизировать сетку, сохранить квадраты, Формат индекса или свойства Объединить вершины для сокращения ресурсов и экономии памяти.
  • Вы можете включить параметр Импортировать BlendShapes, если файл модели получен из Maya, 3ds Max или любого другого приложения для 3D-моделирования, поддерживающего целевую анимацию преобразования.
  • Вы можете включить параметр Создать коллайдеры для геометрии среды.
  • Вы можете включить определенные настройки FBX, такие как Импорт видимости или Импорт камер и Импорт источников света.
  • Для файлов модели, содержащих только анимацию, можно включить параметр Сохранить иерархию, чтобы предотвратить несоответствие иерархии в скелете.
  • Вы можете установить параметры Поменять UVs и Создать UV-карты освещения, если используете Lightmap Предварительно визуализированная текстура, содержащая эффекты источников света на статических объектах сцены. Карты освещения накладываются поверх геометрии сцены для создания эффекта освещения. Подробнее
    См. в Словарь .
  • Вы можете управлять тем, как Unity обрабатывает нормали и касательные в вашей модели, с помощью Normals направления, перпендикулярного поверхности сетки, представленной вектором. Unity использует нормали для определения ориентации объекта и применения затенения. Подробнее
    См. в Словарь , Обычный режим, Касательные или Угол сглаживания.

Настройка параметров импорта ригов и анимации

Если ваш файл содержит данные анимации, вы можете следовать рекомендациям по настройке Rig с помощью вкладки Rig, а затем извлечь или определить Анимационные клипы Анимационные данные, которые можно использовать для анимированных персонажей или простых анимаций. Это простое «единичное» движение, такое как (один конкретный пример) «Простояние», «Ходьба» или «Бег». Подробнее
См. в Словарь , используя вкладка «Анимация». Рабочий процесс отличается для гуманоидного и универсального (не гуманоидного) типов анимации, потому что Unity требует, чтобы структура кости гуманоида была очень конкретной, но нужно только знать, какая кость является корневым узлом Преобразование в иерархии анимации, которое позволяет Unity установить согласованность между клипами анимации для универсальной модели. Это также позволяет Unity правильно смешивать анимации, которые не были созданы «на месте» (то есть когда вся Модель перемещает свое мировое положение во время анимации). Подробнее
Общий тип см. в Словарь :

Примечание. Модели SpeedTree не имеют ни вкладки Rig, ни вкладки Animation.

Работа с материалами и текстурами

Если ваш файл содержит материалы и текстуры, вы можете определить, как с ними работать:

  1. Перейдите на вкладку «Материалы» в окне Настройки импорта.
  2. В раскрывающемся меню Режим создания материалов выберите способ импорта материалов из файла FBX. Если вы не выбрали Нет, в активе Материалы отображается несколько параметров, определяющих, какой должна быть поверхность. предоставлено. Подробнее
    См. на вкладке Словарь , включая параметр Местоположение , значение которого определяет другие параметры.
  3. Выберите параметр Использовать встроенные материалы, чтобы сохранить материалы внутри импортированного объекта.
  4. После завершения настройки параметров нажмите кнопку Применить в нижней части окна Параметры импорта, чтобы сохранить их, или нажмите кнопку Вернуть. > для отмены.

Поиск текстур

Unity следует определенному плану поиска для автоматического поиска текстур при импорте. Сначала импортер ищет подпапку Textures в той же папке, что и mesh основной графический примитив Unity. Меши составляют большую часть ваших 3D-миров. Unity поддерживает триангулированные или четырехугольные полигональные сетки. Поверхности Nurbs, Nurms, Subdiv должны быть преобразованы в полигоны. Подробнее
См. в Словарь или в любой родительской папке. Если это не удается, Unity выполняет полный поиск всех текстур в проекте. Несмотря на то, что он немного медленнее, основным недостатком полного перебора является то, что в проекте может быть две или более текстур с одинаковыми именами. В этом случае не гарантируется, что Unity сможет найти нужный.

Поместите свои текстуры в папку «Текстуры» на уровне активов или выше.Поместите свои текстуры в папку «Текстуры» на уровне активов или выше.

(A) Возможные места, где можно найти текстуры

(B) Импорт сетки

Карты нормалей

Если у вашего персонажа есть карта нормалей Тип текстуры Bump Map, который позволяет добавлять детали поверхности, такие как неровности, бороздки и царапины модели, которые отражают свет, как если бы они были представлены реальной геометрией. Подробнее
См. Словарь , созданный на основе высокополигональной версии Модели, вам следует импортировать версию игрового качества с Углом сглаживания 180 градусов. Это предотвращает странные швы в освещении из-за тангенциального разделения. Если швы по-прежнему присутствуют с этими настройками, выберите Рассчитать предыдущие версии с разделенными касательными в раскрывающемся меню Касательные. Если вы конвертируете изображение в оттенках серого в карту нормалей, вам не нужно об этом беспокоиться.

Как импортировать проект в unity

Главная » Введение в Unity: приступая к работе — часть 2

Введение в Unity: приступая к работе — часть 2

В этой второй части урока по введению в Unity вы узнаете: «Как использовать окно Project для импортирования и организации игровых ресурсов», «Различия между игровыми объектами и префабами», «Как работает физика в Unity», «Как работают камеры и какие типы проекций доступны» и «Основы материалов в Unity».

Версия: C# 7.2, Unity 2018.3, Unity

Как сделать игру в Unity3D

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

  • Как использовать окно Project, чтобы импортировать и организовывать игровые ресурсы — ассеты.
  • Различия между игровыми объектами и префабами.
  • Как работает физика.
  • Как работают камеры и типы проекций, которые доступны.
  • Основы материалов.

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

Здесь есть, что разобрать, поэтому переведите свой телефон в режим полета, закройте двери, и откройте свой разум для мира Unity!

Приступая к работе

Вы можете найти ссылку для скачивания исходников вверху урока.

В них содержится четыре папки:

  • game assets
  • models
  • starter project
  • final project

Вы можете использовать проект, над которым работали в первой части урока, или открыть начальный проект в Unity, используя File -> Open Project, затем выбрать папку проекта Space Debris Starter.

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

Первый способ как открыть проект в Unity
Второй способ как открыть проект в Unity

В файловой системе перейдите в папку game assets из коллекции скаченных файлов примеров, выберите все файлы в этой папке и перетащите их в папку Assets, которая находится в окне Project в Unity.

Перетаскивание файлов в папку Assets в окне проекта Unity

Примечание. Если вы не видите окно Project, выберите Window -> Layots / 2 by 3.

Когда Unity заканчивает импортирование файлов, то окно Project будет выглядеть следующим образом:

Импортирвованные файлы в Окне Project в Unity

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

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

Организация файлов

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

Следующий шаг — расположить файлы по папкам. В окне Project нажмите на кнопку Create и выберите Folder из списка опций.

Создание новой папки в окне Project в Unity

Назовите папку Materials. Окно Project теперь должно выглядеть следующим образом:

Новая папка Materials в окне Project

Теперь создайте следующие пять папок для хранения остальных файлов:

  • Models
  • Prefabs
  • Scripts
  • Sounds
  • Textures

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

Теперь пришло время организации файлов!

Выберите скрипты Bullet, Debris, GameManager, IonCannon, RendererFade, ScreenWrap и ShipController и перетащите их в папку Scripts.

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

Уникальный значок для GameManager в Unity

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

Далее, выберите звуковые файлы background-music, explosion и shoot и перетащите их в папку Sounds.

Наконец, выберите текстуру flint_like_rock_4787 и переместите ее в папку Textures.

Окно Project должно выглядеть следующим образом:

Необходимые папки для работы в окне Project в Unity

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

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

Нажмите кнопку Command-S (Ctrl-S в Windows), чтобы сохранить игру. Появится диалог сохранения. Назовите сцену Main.

Диалог сохранения проекта Unity

Создание первого экземпляра в Unity3D

Что за игра без игрока? Загляните в файл models / player из файлов примеров, которые вы скачали ранее. Вы увидите FBX-файл с несколькими файлами изображений.

FBX-файл содержит все данные, необходимые для создания 3D-модели, а также другие вещи, такие как анимация. Файл игрока, который вы будете использовать в этом уроке Unity, был создан разработчиком ComboMash для игры Hextraction.

Выберите все файлы в папке player и перетащите их наверх в паку Assets в окне Project. Вы увидите следующий диалог:

Диалоговое окно для установки изображения в качестве карты нормалей

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

Тем не менее, Unity считает, что имеет дело обычным изображением. Нажмите Fix now, чтобы сообщить Unity, что данный файл следует воспринимать как карту нормалей.

По умолчанию, Unity будет импортировать камеры с моделью. Для этой игры нужна только одна камера: главная камера. Выберите hextraction_pod в окне Project. Убедитесь, что в окне Inspector выбрана вкладка Model. Снимите отметку с Import Cameras.

Параметр ImportCameras для импортирования камеры модели

После этого нажмите на кнопку Apply.

Когда файлы игрока импортированы, перетащите игровой ресурс hextraction_pod из окна Project в окно Scene.

Перетаскивание ассета из окна Project в окне сцены Unity

Круто — вы создали свой первый экземпляр модели. Редактор Unity правильно импортировал текстуры и применил их к модели.

Вы также заметите, что окно Hierarchy содержит новый игровой объект.

Новый игровой объект в окне Hierarchy

Работа с игровыми объектами

Как отмечалось в первой части данного урока, все в Hierarchy будет иметь тип GameObject. Игровой объект сам по себе содержит так называемый компонент transform, который содержит информацию о положении, масштабе и повороте игрового объекта.

Компонент transform игрового объекта в Unity

Настройка игровых объектов происходит добавлением к ним компонентов. Вы можете думать о компонентах как о представлении поведения и внешнего вида игрового объекта.

Например, вы можете добавить компонент lighting для освещения игрового объекта. Или добавить Audio Scoure, чтобы игровой объект издавал звук. Или даже написать свои собственные компоненты в виде скриптов и прикрепить их к игровым объектам.

Игровые объекты также могут взаимодействовать как контейнеры. Зажмите кнопку Alt и нажмите кнопкой мыши на раскрывающийся треугольник слева от hextraction_pod в окне Hierarchy, чтобы раскрыть игровой объект и все уровни ниже него. Вы увидите следующую коллекцию игровых объектов:

Игровые объекты могут содержать другие в окне Hierarchy в Unity

Многие из них — это пустые игровые объекты, которые представляют структуру модели. Unity создает эти игровые объекты, когда вы импортируете модель. Другие игровые объекты, такие как потомки pod_mesh, содержат такие компоненты, как Skinned Mesh Renderers для отображения геометрии на экране.

Вы заметите, что некоторые игровые объекты в окне Hierarchy помечены черным, в то время как другие — синим.

Разное отображение игровых объектов в окне Hierarchy в Unity

Черный цвет означает, что это стандартный игровой объект. Синий текст говорит о том, что игровой объект является экземпляром модели или он связан с другими объектами при помощи префаба. Иногда игровые объекты также становятся коричневыми. Это означает, что они потеряли соединение с префабом.

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

Значок экземпляра модели в Unity

Работа с префабами

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

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

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

Чтобы создать префаб перетащите игровой объект из окна Hierarchy на окно Project.

Перетаскивание игрового объекта из окна Hierarchy на окно Project для создания префаба в Unity

Когда вы сделаете это, то появится диалог, который спросит хотите ли вы создать новый префаб или вариант префаба.

Диалоговое окно для создания префаба в Unity

Поскольку у вас нет готового префаба, нажмите на кнопку Original Prefab.

Вы заметите, что значок стал полностью синим. Это означает, что вы работаете с экземпляром префаба.

Выберите hextraction_pod в окне Hierarchy. В окне Inspector вы увидите две кнопки: Open и Select. Также выпадающее меню, которое называется Overrides:

Кнопки Open, Select и Overrides в окне Inspector в Unity

Кнопка Open позволяет открыть префаб и редактировать его, что позволяет сосредоточиться только на префабе. Окно Hierarchy будет показывать только выбранный префаб. Чтобы вернуться к обычному редактированию нажмите стрелку назад в окне Hierarchy.

Редактирование префаба в Unity3D

Кнопка Select находит местоположение префаба в окне Project. Это особенно полезно, когда вы поместили префаб в сложную структуру папок в окне Project. Попробуйте сделать это сейчас, чтобы посмотреть, что происходит при нажатии этой кнопки.

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

Применить или перезаписать изменения, которые сделаны в префабе

В настоящее время на корабле игрока есть тайловая сетка, которая выглядит странно. Во-первых, вам нужно отредактировать префаб.

Выберите префаб и в окне Inspector нажмите кнопку Open. Затем выберите игровой объект tile_reference в окне Hierarchy. Это прямой потомок игрового объекта hextraction_pod.

Удалите сетку, нажав на клавишу Delete в Windows или Cmd-Delete в macOS. Нажмите стрелку назад в окне Hierarchy, чтобы выйти из редактирования префаба.

Вам будет предложено сохранить изменения при выходе из режима префаба. Нажмите Save.

Диалоговое сохранения изменений для префаба в Unity

Далее, нажмите на hextraction_pod в окне Hierarchy, выберите Rename из выпадающего меню, которое появится, и переименуйте игровой объект на Spaceship. Это должно выглядеть следующим образом:

Переименование игрового объекта в окне Hierarchy в Unity

Перетаскивание игрового объекта в окно Project конвертирует его в префаб без каких-либо дополнительных усилий с вашей стороны. Вы можете создать столько экземпляров Spaceship, сколько захотите, перетаскивая их из окна Project на окно сцены.

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

Вперед, моя неудержимая армия космических кораблей! Ха-ха-ха!

Управление камерой

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

Для этого вам нужно иметь дело с двумя вещами: камерой и системой физики. Не волнуйтесь, вам не нужно изучать физику субатомных частиц сегодня!

Для начала вам нужно настроить корабль.

  1. Выберите космический корабль в окне Hierarchy.
  2. Используйте окно Inspector для установки позиции на (X:10.65,Y:1.97,Z:10).
  3. Установите Rotation на (X:270,Y:0,Z:0).

Значения в окне Inspector будут соответствовать с указанными ниже.

Настройка параметров Position и Rotation свойства transofrm игрового объекта Spaceship

Итак, как я пришел к таким значениям? Они на самом деле случайные.

Разрабатывая игру, я поместил объекты в эти начальные координаты. Если вы бы вы делали игру, то могли бы выбрать другие значения.

Если вы посмотрите на окно Game, то увидите, что корабль все еще находится слишком близко к камере.

Расположение космического корабля в окне Game в Unity

Есть два способа это поправить. Вы можете передвинуть корабль дальше назад или перенастроить камеру. Приготовьтесь стать помощником оператора!

Выберите Main Camera в окне Hierarchy. Вы увидите компонент Camera в окне Inspector. Здесь есть множество опций, но пока что проигнорируйте все, кроме Projection и Field of View.

Настройки Main Camera в окне Inspector в Unity

Вы можете выбрать Perspective или Orthographic для поля проекции. Этот выбор определяет окончательный внешний вид игры.

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

Перспективная и ортографическая проекции в Unity

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

В основном, 3D-игры должны использовать перспективную проекцию. Игры без глубины, как 2D-игры, должны использовать ортогональную проекцию.

В то время как ваша игра имеет 3D-элементы, игровой процесс по сути 2D. В поле Projection выберите Orthographic. Далее установите параметр size на 18.85. Окно Game должно будет выглядеть следующим образом:

Космический корабль в окне Game после установки проекции Orthographic в Unity

Космический корабль должен летать, не так ли? Чтобы сделать это, вам нужно написать некоторый код на C# , чтобы перемещать корабль кадр за кадром. Чтобы сэкономить время в работе, файлы примеров содержат готовый к использованию скрипт. Вопрос в том, как добавить его на корабль?

Скрипт просто еще один тип компонента, и есть множество способов добавления компонентов к игровым объектам. В этом уроке вы поэкспериментируете с несколькими методами.

А пока что выберите Spaceship в окне Hierarchy. Затем выберите опцию Component в строке меню. Внизу вы увидите опцию Scripts с всплывающим меню доступных скриптов. Выберите скрипт Ship Controller.

Добавление игровому объекту Spaceship компонента скрипта Ship Controller в Unity

Теперь вы должны увидеть, что скрипт Ship Controller был добавлен в качестве компонента Script к игровому объекту Spaceship в окне Inspector.

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

Настройки параметров Move Speed и Rotation Speed в компоненте Ship Controller в Unity

Установите Move Speed компонента на 22 и Rotation Speed на 2.

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

К сожалению, корабль улетит с экрана, в Альфа Центавра и дальше. Вам нужно это исправить.

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

Настройка параметра Renderers в компоненте Screen Wrap в Unity

Вы заметите, что у этого компонента есть поле с именем Renderers, которое принимает массив Skinned Mesh Renderers. Это геометрия, которая создает модель.

Если рендерер не отображается на экране, то он перемещает игровой объект на другую позицию на экране, в зависимости от его направления движения и текущей позиции.

Раскройте вкладку Spaceship, пока не найдете игровой объект body, затем перетащите этот объект в поле Renderers.

Теперь запустите игру. К бесконечности… и дальше!

Вы не забыли сохранить свою работу?

Введение в физику

Есть только одна большая проблема. Управляя кораблем, вы нарушили один из законов физики. Нет, не закон Ньютона — законы физики Unity лучшей практики.

Unity использует физику для обнаружения столкновений. Если игровой объект не имеет компонента RigidBody, то он считается статическим коллайдером.

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

Чтобы избежать ненужной нагрузки на процессор, вам нужно отключить физический движок, добавив компонент Rigidbody. Вы уже добавили компоненты напрямую из строки меню. На этот раз, с выделенным игровым объектом Spaceship в окне Hierarchy нажмите на кнопку Add Component в окне Inspector.

Кнопка добавления нового компонента к игровому объекту в окне Inspector в Unity

Вы увидите, что появилось меню компонентов. Нажмите Physics, затем Rigidbody.

У этого компонента много опций. Is Kinematic — то, что вас интересует.

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

Установите флажок на параметре Is Kinematic. Поскольку вы не используете гравитацию в этой игре, снимите флажок с параметра Use Gravity следующим образом:

Настройка параметров Is Kinematic и Use Gravity в компоненте Rigidbody в Unity

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

Коллайдеры позволяют прослушивать и реагировать на столкновения. Есть много типов коллайдеров для использования с основными формами, такие как Sphere Collider и Box Collider.

Есть даже mesh-коллайдер, который основан на 3D-модели. Коллайдеры отображаются с использованием зеленых линий на сцене.

Отображение коллайдера в Unity

Если вы используете сетчатый дисплей, то зеленые линии будут очень тонкими. Unity ищет настройку или делает редактор dpi чувствительным, чтобы это улучшить.

В данном уроке вы будете все упрощать и использовать Sphere Collider.

Выберите Spaceship в окне Hierarchy и нажмите кнопку Add Component в окне Inspector. Нажмите Physics / Sphere Collider, и вы увидите зеленый круг за космическим кораблем.

Зеленый круг - коллайдер игрового объекта Spaceship

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

  1. С выбранным Spaceship в окне Hierarchy найдите Sphere Collider в окне Inspector.
  2. Установите Center на (X:0, Y:4.09, Z:-0.72)
  3. Установите Radius на 3.14
  4. Установите флажок Is Trigger. Кинематические игровые объекты не могут регистрировать обычные столкновения, но они могут прослушивать события запуска от других кинематических объектов.

Компонент Sphere Collider должен выглядеть следующим образом:

Настройка компонента Sphere Collider в Unity
Коллайдер также включен в игровой объект Spaceship, вот так:
Компонент коллайдер игрового объекта Spaceship

Вооружение пушек

В то время, как летать вокруг — весело и все, у большинства игроков есть непреодолимое желание запустить несколько десятков фотонных торпед!

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

Выберите Spaceship в окне Hierarchy и нажмите на кнопку Add Component в окне Inspector. Нажмите Scripts / Ion Cannon.

Вы заметите, что компонент Audio Source был автоматически добавлен к игровому объекту так же как и скрипт.

Компонент Audio Source добавлен к игровому объекту в Unity

Некоторым скриптам необходимы компоненты. Если компоненты не найдены в игровом объекте, то они будут добавлены автоматически.

Чтобы объекты воспроизводили звуки, вам нужны Audio Source и Audio Clip. Audio Source может быть прикреплен к любому игровому объекту, в то время как Audio Clip — просто аудио-файл.

Перетащите звук shoot из папки Sounds в окно Project в поле Fire Sound.

Поле Fire Sound компонента Ion Cannon для игрового объекта Spaceship в окне Inspector в Unity

Вы заметите, что скрипт Ion Cannon имеет поле Bullet. Ваша работа — создать объект bullet. Не беспокойтесь, если вы не художник, то достаточно простой сферы.

Нажмите кнопку Create в окне Hierarchy. Из меню выберите 3D Object, затем выберите Sphere.

Выберите Sphere в окне Hierarchy, затем используйте окно Inspector, чтобы установить Scale на (X:0.47, Y:0.47, Z:0.47).
Выберите объект Sphere в окне Hierarchy еще раз и назовите его Bullet.

Поскольку объект bullet будет перемещаться по сцене, ему нужно также включить физический движок. Вы помните, что нужно сделать? Попробуйте, и если застряли, то посмотрите подсказку ниже.

Выберите Bullet в окне Hierarchy и нажмите кнопку Add Component в окне Inspector. Выберите Physics / Rigidbody, чтобы добавить компонент Rigidbody.

Объекту bullet нужна будет скорость для перемещения, поэтому убедитесь, что параметр Is Kinematic не отмечен. Также убедитесь, что параметр Use Gravity не отмечен.

Объект bullet будет продолжать путешествовать даже после того, как вылетит за пределы экрана, как это делал в начале космический корабль. Перетащите скрипт Bullet из окна Project на игровой объект Bullet. Теперь, когда объект bullet будет залетать за экран, то он автоматически будет уничтожаться.

Наконец, перетащите объект Bullet в папку Prefab в окне Project. Это создаст префаб объекта bullet, который позволяет создавать множество объектов bullet используя скрипт.

Теперь, когда есть объект bullet, созданный как префаб, удалите экземпляр этого объекта из окна Hierarchy.

Выберите космический корабль снова и используйте окно Inspector, чтобы добавить префаб Bullet в поле Bullet. Окно Inspector должно выглядеть так:

Добавление префаба в поле Bullet компонента Ion Cannon для игрового объекта Spaceship в Unity

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

Выберите Main Camera в окне Hierarchy и используйте окно Inspector, чтобы установить параметр Clear Flags на значение Solid Color и параметр Background Color на темный цвет.

Настройка цвета фона для игры в компоненте Main Camera в Unity

Сохраните свою работу, запустите игру и нажмите клавишу пробел, чтобы пострелять из ионной пушки!

Размещение обломков в космическом мусоре

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

Найдите файл rock_d_05.obj в скаченных файлах и перетащите его в папку Models в окне Project.

Нажмите правой кнопкой мыши на rock_d_05.obj и переименуйте его в Asteroid.

Этот файл содержит только информацию о самой модели. Там нет анимации.

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

Модель астероида на игровой сцене в Unity

Милая парочка? Я дам им неделю! Похоже, это могут быть непростые отношения.

Хотя вы можете утверждать, что это фрагмент белоснежной кометы, вы должны научиться текстурировать модели… если вы не хотите сделать карьеру в создании игр на снежную тематику.

Разверните игровой объект Asteroid и выберите его дочерний объект с именем rockLP001. В окне Inspector вы увидите, что к этому дочернему игровому объекту прикреплен компонент Mesh Renderer. Рендерер прорисовывает объект на экране, но ему нужно небольшая помощь, чтобы это сделать — вот где в игру вступают материалы.

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

Unity достигает этого инкапсулируя шейдер с каждым материалом.

Что еще за шейдер, спросите вы? Это простая программа, написанная на C-подобном языке программирования, которая работает на GPU. Шейдер может быть достаточно простым для рендеринга текстуры на кубе, или может быть достаточно сложным для имитации воды.

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

Откройте папку Materials в окне Project и нажмите на кнопку Create. Из раскрывающегося списка выберите Material и дайте ему имя Asteroid. В окне Inspector вы теперь увидите доступные свойства для материала.

Свойства материала для игрового объекта Asteroid в окне Inspector в Unity

  1. Опция Shader позволяет выбрать один из множества готовых шейдеров. По умолчанию Standard Shader обладает огромной гибкостью, поэтому оставьте его выбранным.
  2. Когда астероид ударяется, то нужно чтобы он исчезал, поэтому установите параметр Rendering Mode на значение Fade.
  3. Свойство Albedo содержит фактическую текстуру. Вы можете покрасить ее в доступный цвет.
    Перетащите изображение flint_like_rock_4787 из папки Textures в окне Project на свойство Albedo:
  4. Посмотрев на превью материала Asteroid в окне Inspector, вы заметите, что материал выглядит слишком гладким, как будто был отполирован (если вы не видите превью материала, попробуйте перетащить строку названия Asteroid вверх снизу окна Inspector следующим образом):

Превью материала игрового объекта Asteroid в окне Inspector в Unity

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

После того, как материал полностью настроен, нужно добавить его на астероид. Перетащите материал Asteroid из окна Project на игровой объект Asteroid в окне сцены.

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

Перетащите скрипт Debris из окна Project, который находится в папке Scripts, на астероид.

Скрипт Debris автоматически добавил Sphere Collider, Rigidbody и Audio Source к астероиду. Теперь настройте все необходимые свойства.

Настройка свойств игрового объекта Debris в окне Inspector в Unity

  1. Установите параметр center для Sphere Collider на (X:0.01, Y:-0.09, Z:0.89).
  2. Установите Radius на 1.49.
  3. Отметьте параметр Is Trigger.
  4. Для Rigidbody, уберите флажок с параметра Use Gravity.
  5. Отметьте параметр Is Kinematic.
  6. Для скрипта Debris, установите параметр Min Speed на 15.
  7. Установите параметр Max Speed на 30.
  8. Перетащите звуковой файл explosion из папки Sounds на поле Explosion Sound.
  9. Для свойства transform игрового объекта Asteroid, установите параметр Scale на (X:3.02, Y:3.02, Z:3.02).
  10. При добавлении компонента Debris также добавился необходимый компонент Renderer Fade. Когда объект bullet сталкивается с астероидом, то астероид должен раствориться, а не просто исчезнуть с экрана. Компонент требует время выцветания, поэтому установите параметр Fade Time на 0.5.

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

Из папки Scripts в окне Project перетащите скрипт ScreenWrap на Asteroid. Так же как делали это с Spaceship, вам нужно будет настроить Screen Wrap с правильным рендерером.

У Asteroid есть потомок игровой объект с именем rockLP001. Перетащите этот дочерний объект на свойство Renderers компонента Screen Wrap в окне Inspector для игрового объекта Asteroid.

Установка свойства Renderers компонента Screen Wrap игрового объекта Asteroid в окне Inspector в Unity

Наконец, перетащите Asteroid из окна Hierarchy в папку Prefab в окне Project. Нажмите на Original Prefab, когда будет предложено создать префаб. Теперь, когда вы закончили создание префаба Asteroid, удалите экземпляр Asteroid из окна Hierarchy.

Последнее, что нужно сделать — это точка появления для всех астероидов. Нажмите на кнопку Create в окне Hierarchy и выберите Create Empty. Назовите точку появления Debris.

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

Перетащите игровой объект Debris и сделайте его дочерним для missile_R_0. Координаты преобразования Debris тогда будут относительны его родительского игрового объекта.

Чтобы координаты согласовывались с родительским объектом, установите позицию Debris на (X:0, Y:0, Z:0). С этой маленькой хитростью вы можете быть уверены, что Spaceship и Debris находсятся на одной плоскости.

Далее переместите объект Debris вниз окна Hierarchy, где он первоначально находился.

Переместите игровой объект Debris на 7.5 пунктов вправо. В случае, если вам не удалось проделать все это точно также, то его новая позиция должна быть (X:20.0, Y:1.72, Z:7.06).

Собираем все вместе

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

Нажмите на кнопку Create в окне Hierarchy и выберите Create Empty. В окне Inspector нажмите на имя нового игрового объекта и назовите его GameManager.

Выбрав GameManager в окне Hierarchy, нажмите на кнопку Add Component, выберите Scripts, затем выберите GameManager.

Вы увидите, что это действие также добавило Audio Source. Кроме того, компонент GameManager имеет несколько полей, которые нужно установить так, чтобы использовать для создания астероидов.

Начните с поля Debris. Убедитесь, что GameManager выбран в окне Hierarchy, и перетащите префаб Asteroid в поле Debris.

Так что вы здесь делали? GameManager отвечает за порождение астероидов и использует поле Debris, чтобы решить какие объекты создавать. Вы указали, чтобы он использовал префаб Asteroid.

Далее, все еще на GameManager:

  1. Установите параметр Min Time на 2 и параметр Max Time на 5. Это указывает скрипту, как быстро следует создавать астероиды.
  2. Установите Total Items on Screen на 5. Это ограничивает число астероидов до 5, так чтобы игрок не был перегружен.
  3. Перетащите игровой объект Debris из окна Hierarchy на поле Screen Debris. Это определяет, что GameManager должен создавать астероиды на игровом объекте Debris.

Компонент GameManager должен выглядеть слудеющим образом:

Настройка компонента GameManager в Unity

Наконец, в компоненте Audio Source добавьте background-music в поле AudioClip, и убедитесь, что у параметра loop стоит флажок.

Добавление звукового файла в поле AudioClip компонента Audio Source

Запустите игру и проверьте, как все выглядит.

Поздравляем — вы создали свою первую игру в Unity!

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

… и вы не забыли сохранить свою работу. Правильно?

Куда двигаться дальше?

Если хотите, то можете скачать и открыть проект по ссылке вверху данного урока.

Чтобы узнать больше о Unity, посмотрите другие уроки. Также кучу хорошего бесплатного контента по Unity можно найти на YouTube.

Как всегда, продолжайте проверять этот сайт на новые уроки. Если у вас есть какие-либо вопросы, не стесняйтесь задавать их в комментариях!

Web server is returning an unknown error Error code 520

There is an unknown connection issue between Cloudflare and the origin web server. As a result, the web page can not be displayed.

What can I do?

If you are a visitor of this website:

Please try again in a few minutes.

If you are the owner of this website:

There is an issue between Cloudflare’s cache and your origin web server. Cloudflare monitors for these errors and automatically investigates the cause. To help support the investigation, you can pull the corresponding error log from your web server and submit it our support team. Please include the Ray ID (which is at the bottom of this error page). Additional troubleshooting resources.

Cloudflare Ray ID: 8024dc8a8495006d • Your IP: Click to reveal 86.107.21.84 • Performance & security by Cloudflare

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *