Какие файлы находятся в папке project unity
Перейти к содержимому

Какие файлы находятся в папке project unity

Какие файлы находятся в папке project unity

Довольно часто новые проекты начинаются как “proof of concept” для оценки геймплея и вообще жизнеспособности проекта. Берутся ассеты с assetstore как для кода, так и для контента, новые ресурсы в виде сцен, префабов, картинок и звуков создаются врассыпную, без четкой структуры. Но когда проект переходит в более зрелую стадию — это уже неуправляемая помойка с кучей неизвестных зависимостей и никто не знает, что можно удалять, а что нет. Знакомая ситуация?

Если вы не хотите страдать позже, то должны заботиться о порядке в проекте все время — с начала разработки и до конца. Все члены команды разработки должны придерживаться одних и тех же правил без исключения. Я обычно предлагаю следующую иерархию:

  • Assets // Корневая папка Unity -проекта, все ассеты проекта должны быть внутри нее.
    • Client — Все ассеты, специфичные для данного проекта.
      • Animations
        • Controllers — Графы AnimationController, маски для аниматора.
        • Sources — Исходные анимации в формате FBX / DAE.
        • AppIcon — Иконки приложения для всех платформ.
        • Ui — Изображения, связанные с игровым UI.
          • Atlases — Атласы UI.
          • Sources — Исходные изображения для сборки атласов. Каждый атлас — отдельная папка с тем же именем, что и атлас.

          Из примера видно, что все данные проекта лежат внутри отдельной папки “Client” — это позволяет хранить сторонние ассеты, импортируемые с assetstore, отдельно от своих данных и легко обновлять их на новые версии или удалять без проблем с основным проектом.

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

          Почему Хранить как можно меньше данных! внутри папки “Resources”? Папка с именем “Resources” (причем любой вложенности) будет автоматически распознана Unity как специальная папка и весь контент из нее, включая зависимости, будет упакован в конечный билд приложения, даже если этот контент никогда не будет использоваться.

          Если нужно что-то проверить по-быстрому — лучше создать папку “_TEMP” в корневой папке “Assets”. Не забываем — это только для временных быстрых тестов, папка должна быть удалена после этого!

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

          Доступ к папке проекта

          Можно ли как-то взять объект из папки проекта? Не считая класс Resources и все что с ним связано, к примеру в папке Assets есть префаб куба Cube, можно ли как-то получить доступ к этому префабу не передавая его в кеш? т.е. есть путь и по нему достать объект?

          user avatar

          Ответ можно поделить на 2 части — про редактор и про игру.

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

          Специальные папки.

          Скрипты в этой папке всегда компилируются первыми. Из скриптов в этой папке создаются сборки с именами или  Assembly-CSharp-firstpass, или Assembly-UnityScript-firstpass или Assembly-Boo-firstpass, в зависимости от языка на котором они написаны. Смотри [http:// http://docs.unity3d.com/Documentation/Manual/ScriptCompileOrderFolders.html ScriptCompileOrderFolders]

          Скрипты в папке Standard Assets будут компилироваться раньше чем все Ваши остальные скрипты. Таким образом размещение скрипта в этой папке — это один из способов доступа из скрипта на C# в скрипт на .js и наоборот.

          Pro Standard Assets

          То же самое, что Standard Assets, только файлы тут относятся к Pro версии. Это означает, что ассеты размещенные тут используют Pro фичи, такие как рендер в текстуру и полноэкранные эффекты.

          Снова, скрипты размещенные тут компилируется ранее других, позволяя осуществить доступ из скрипта на другом языке, размещенного вне папки Pro Standard Assets.

          Editor

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

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

          У вас может быть несколько директорий с наименованием Editor и они могут находится на любой глубине вложенности иерархии директорий.

          The Editor folder name is a special name which allows your scripts access to the Unity Editor Scripting API. If your script uses any classes or functionality from the UnityEditor namespace, it has to be placed in a folder called Editor.

          Scripts inside an Editor folder will not be included in your game’s build. They are only used in the Unity Editor.

          You can have multiple Editor folders throughout your project.

          Plugins

          Директория «Plugins» предназначена для размещения скомпилированных плагинов. Все плагины находящиеся в данной категории будут доступны для доступа в ваших скриптах, а так-же будут помещены в сборку игры. Обратите внимание, что директория «Plugins» имеет ограничения по размещению относительно корня проекта. Она должна находится в самом верхнем уровне иерархии каталогов проекта.

          Для каждой операционной системы плагины имеют свое расширение, так для Windows — файлы «.dll», для Mac OS X — «.bundle», для Linux — «.so».

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

          The «Plugins» folder is where you must put any native plugins, which you want to be accessible by your scripts. They will also be automatically included in your build. Take note that this folder may not be in any subfolder (it has to reside within the top-level Assets folder).

          In Windows, native plugins exist as .dll files, in Mac OS X, they are .bundle files, and in Linux, they are .so files.

          Like the Standard Assets folder, any scripts in here are compiled earlier, allowing them to be accessed by other scripts (of any language) that are outside the Plugins folder.

          Plugins/x86

          If you are building for 32-bit or a universal (both 32 and 64 bit) platform, and if this subfolder exists, any native plugin files in this folder will automatically be included in your build. If this folder does not exist, Unity will look for native plugins inside the parent Plugins folder instead.

          Plugins/x86_64

          If you are building for 64-bit or a universal (both 32 and 64 bit) platform, and if this subfolder exists, any native plugin files in this folder will automatically be included in your build. If this folder does not exist, Unity will look for native plugins inside the parent Plugins folder instead.

          If you are making a universal build, it’s recommended you make both the x86 and x86_64 subfolders. Then have the 32-bit and 64-bit versions of your native plugins in the proper subfolder correspondingly.

          Plugins/Android

          Place here any Java .jar files you want included in your Android project, used for Java-based plugins. Any .so file (when having Android NDK-based plugins) will also be included. See http://docs.unity3d.com/Documentation/Manual/PluginsForAndroid.html

          Plugins/iOS

          A limited, simple way to automatically add (as symbolic links) any .a, .m, .mm, .c, or .cpp files into the generated Xcode project. See http://docs.unity3d.com/Documentation/Manual/PluginsForIOS.html

          If you need more control how to automatically add files to the Xcode project, you should make use of the PostprocessBuildPlayer feature. Doing so does not require you to place such files in the Plugins/iOS folder. See http://docs.unity3d.com/Documentation/Manual/BuildPlayerPipeline.html

          Resources

          Папка «Ресурсы» — это специальная папка, которая позволяет вам получать доступ к ресурсам по пути и имени файла в ваших скриптах, а не по обычному (и рекомендуемому) методу прямых ссылок (как переменные в скриптах с помощью перетаскивания в редакторе Unity). ).

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

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

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

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

          Gizmos

          Папка gizmos содержит все ресурсы текстур / значков для использования с Gizmos.DrawIcon (). Ресурсы текстур, размещенные внутри этой папки, могут называться по имени и выводиться на экран в виде гизмо в редакторе.

          WebPlayerTemplates

          Used to replace the default web page used for web builds. Any scripts placed here will not be compiled at all. This folder has to be in your top-level Assets folder (it should not be in any subfolder in your Assets directory).

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

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