Ресурс — это любой элемент, который вы используете в своем проекте Unity для создания игры или приложения. Ресурсы могут представлять визуальные или звуковые элементы в вашем проекте, такие как 3D-модели, текстуры, спрайтыдвухмерные графические объекты. Если вы привыкли работать в 3D, спрайты — это, по сути, просто стандартные текстуры, но есть специальные приемы комбинирования текстур спрайтов и управления ими для повышения эффективности и удобства во время разработки. Подробнее
См. в Словарь, звуковые эффекты или музыку. Объекты также могут представлять собой более абстрактные элементы, такие как цветовые градиенты, маски анимации или произвольный текст или числовые данные для любого использования.
Ресурс может быть получен из файла, созданного вне Unity, например из 3D-модели, аудиофайла или изображения. Вы также можете создавать некоторые типы ресурсов в редакторе Unity, например ProBuilder Meshосновной графический примитив Unity. Меши составляют большую часть ваших 3D-миров. Unity поддерживает триангулированные или четырехугольные полигональные сетки. Поверхности Nurbs, Nurms, Subdiv должны быть преобразованы в полигоны. Подробнее
См. в Словарь, Контроллер анимацииУправляет анимацией через слои анимации с помощью конечных автоматов анимации и деревьев смешивания анимации, управляемых параметрами анимации. На один и тот же контроллер Animator могут ссылаться несколько моделей с компонентами Animator. Подробнее
См. в Словарь, аудиомикшер или Визуализировать текстуруСпециальный тип текстуры, который создается и обновляется во время выполнения. Чтобы использовать их, сначала создайте новую текстуру рендеринга и назначьте одну из ваших камер для рендеринга в нее. Затем вы можете использовать Render Texture в материале, как обычную текстуру. Подробнее
См. в Словарь.
Импорт, создание, сборка, распространение, загрузка
На приведенной выше диаграмме показан типичный рабочий процесс при работе с ресурсами в Unity. Каждый столбец представляет собой отдельный шаг и описан ниже:
- Импорт объектов в редактор Unity
- Создайте контент с помощью редактора Unity с этими ресурсами.
- Создайте файл приложения или игры и, при необходимости, сопутствующие пакеты контента
- Распространяйте созданные файлы, чтобы ваши пользователи могли получить к ним доступ через издателя или магазин приложений.
- Загружайте дополнительные обновления по мере необходимости во время выполнения, в зависимости от поведения вашего пользователя и того, как вы сгруппировали и связали свой контент.
Импорт
Импорт — это процесс переноса исходных файлов в редактор Unity для работы с ними. Когда вы сохраняете или копируете файл в папку Assets
вашего проекта, Unity импортирует этот файл, что позволяет вам работать с ним в редакторе.
Важно изучить некоторые основы импорта ресурсов в Unity, например, где файлы хранятся в вашем проекте, как настроить параметры импорта для каждого типа ресурсов, для чего нужны метафайлы и как работает база данных объектов. хранит импортированные данные. Дополнительные сведения об этих темах см. в разделе Импорт ресурсов.
Вы можете ускорить обработку ресурсов Unity при работе с командами, используя Unity Accelerator.
Создать
После того как вы импортировали некоторые ресурсы в свой проект, вы можете приступить к созданию своей игры или приложения. Обычно это включает в себя размещение ресурсов в одной или нескольких СценахСцена содержит среды и меню. вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
См. в Словарь как GameObjectsОсновной объект в сценах Unity, который может представлять персонажей, реквизит, декорации, камеры, путевые точки и многое другое. Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
См. в Словарь и добавив скриптыКусок кода, позволяющий создавать собственные компоненты, запускать игровые события, изменять свойства компонентов с течением времени и реагировать на действия пользователя. вводите любым удобным для вас способом. Подробнее
См. в Словарь, которые контролируют взаимодействие пользователя с ними.
По мере развития вашего проекта вам может потребоваться разделить ресурсы на отдельные группы, что позволит вашей игре постепенно загружать выбранный дополнительный контент во время выполнения.
В процессе создания вы можете выбрать стратегию группировки ресурсов в отдельные пакеты и реализовать код для выбора времени их загрузки.
Группировка ресурсов в пакеты позволяет уменьшить размер начальной загрузки и загрузить некоторые ресурсы позже во время выполнения. Это может помочь вам оптимизировать размер загрузки и использование памяти вашей игрой или приложением. Рекомендуемый способ сделать это — использовать систему Unity Addressables.
Построить
Под сборкой понимается процесс экспорта завершенного проекта в двоичные файлы, которые затем можно распространять и запускать на платформе по вашему выбору. Например, при сборке для Windows Unity создает файл .EXE
вместе с некоторыми сопутствующими файлами данных, которые затем можно распространять.
Если вы используете Addressables или Asset Bundles для группировки ресурсов в отдельные загружаемые пакеты, вам также необходимо создать файлы этих пакетов для распространения.
Вы можете создать свой проект на своем компьютере или воспользоваться службой Cloud Build Unity, которая обеспечивает автоматическое создание сборки и непрерывную интеграцию ваших проектов Unity.
Распространить
После того как вы создали игру или приложение и его наборы контента, вашим пользователям нужен способ получить к ним доступ. Ваш выбор метода распространения зависит от платформ, на которые вы ориентируетесь.
Например, у мобильных платформ есть собственные магазины приложений, вы можете использовать профессионального издателя или самостоятельно размещать приложения на своих серверах.
Unity предлагает собственный сервис Доставка облачного контента, который позволяет размещать и доставлять игру или приложение и его контент пользователям. Эта услуга полностью интегрирована в платформу разработки Unity. . Это может сэкономить много времени и полезно для насыщенных контентом живых игр или приложений, которые требуют регулярного обновления контента.
Загрузить
Когда пользователи загружают и используют вашу игру или приложение, процесс загрузки и опыт определяются установленными вами правилами и программами, а также тем, как вы группируете и связываете свои ресурсы.
Используя описанные здесь методы и сервисы, вы можете обеспечить быструю начальную загрузку, а также текущие обновления и дополнительный контент, который вы можете развертывать в течение всего срока службы вашего проекта.
Преимущества рабочего процесса художника
В рабочем процессе ресурсов Unity есть инструменты и функции, упрощающие редактирование и проектирование непосредственно в редакторе Unity:
- Поддержка различных форматов файлов
- Быстрый обмен между Unity и сторонними инструментами
- Предустановки для применения пользовательских настроек по умолчанию для типов объектов
- Обновляйте постоянно обновляемый контент с помощью Addressables и доставки облачного контента.
Преимущества рабочего процесса программиста
- Специализированный конвейер контента (например, вы можете написать сценарии для обработки ресурсов по мере их импорта Unity или для управления тем, какие предустановки Unity автоматически применяет на основе ваших собственных правил).
- Изменять исходные ресурсы с помощью сценариев. Исходные ресурсы, такие как материалы, сетки или физика, можно настроить с помощью кода игры.
- Экономьте память с помощью системы адресных ресурсов, которая упрощает управление контентом для сложных проектов и предоставляет инструменты автоматического управления памятью и профилирования.
- Оптимизируйте ресурсы для целевых платформ. Когда вы делаете мультиплатформенный проект, у вас могут быть сотни различных текстур, которые нужно упаковать с разным разрешением для разных платформ. Unity автоматически упаковывает, изменяет размеры и повторно сжимает ваши ресурсы при сборке для каждой целевой платформы.
Особенности рабочего процесса
При работе с объектами в Unity можно использовать разные стратегии. Какой из них подходит для вашего проекта, зависит от таких факторов, как размер вашей команды, размер вашего проекта, ваши целевые платформы, доступность памяти на этих платформах и хотите ли вы выпускать обновления, исправления и DLC после их публикации.
Например, если вы работаете в команде, вы можете использовать сервер кэшированияАвтономное приложение, которое вы можете запустить на локальном компьютере и хранить импортированные данные активов, чтобы сократить время, необходимое для импорта активов. Подробнее
См. в Словарь рядом с контроль версийСистема управления изменениями файлов. Вы можете использовать Unity в сочетании с наиболее распространенными инструментами контроля версий, включая Perforce, Git, Mercurial и PlasticSCM. Подробнее
См. в системе Словарь, чтобы кэшировать результаты импорта Unity, чтобы сэкономить время всей команды. .
Если вы работаете с большим количеством ресурсов, которые хотите опубликовать в виде отдельных пакетов, вам может быть полезно разделить некоторые из этих групп ресурсов на отдельные проекты, чтобы членам вашей команды не приходилось чтобы загрузить один огромный проект для работы с этими пакетами.
Платформа
Если вы храните все свои ресурсы в одном проекте, Unity автоматически создает их в правильном формате для текущей выбранной платформы при запуске сборки. Однако, если вы разделите свои активы на несколько проектов, чтобы создавать свои пакеты по отдельности, вы должны сделать сборку для каждой поддерживаемой платформы. См. документацию Addressables Создание для нескольких платформ для получения дополнительной информации.
Характеристики платформы также определяют ограничения и возможности организации ресурсов среды выполнения. Например, на автономных платформах (ПК или macOS) виртуальная память обеспечивает почти неограниченный пул памяти, поэтому использование папки ресурсов или больших пакетов ресурсов обычно не поставить задачу памяти. И наоборот, мобильные устройства и консольные платформы обычно имеют ограниченную или отсутствующую виртуальную память, поэтому приложения, созданные для этих платформ, должны более эффективно управлять загрузкой и выгрузкой активов.
Ожидания пользователей в отношении платформы также являются важным фактором. Например, на мобильных платформах длительный процесс первоначальной загрузки и установки может привести к тому, что игроки откажутся от вашего приложения еще до того, как сыграют в него. По этой причине мобильные приложения обычно включают в первоначальную сборку только минимальный набор ресурсов, а остальные загружают с удаленного сервера при первом запуске приложения пользователем.