Изучение структуры папок проекта в Unity — системы контроля версий

  • Tutorial
Добрый вечер хабрчане, решил перевести один единственный урок из раздела Архитектура — MASTERING UNITY PROJECT FOLDER STRUCTURE — VERSION CONTROL SYSTEMS на официальном сайте Unity. В самом конце статья немного модифицирована, была изменена настройка проекта VCS (Version Control System).

P.S для тех кто только знакомится с Unity3d и предпочитает видеоуроки советую ознакомится с официальными видеоуроками для новичка на русском языке.

В этом уроке я хочу пролить немного света на:
— Структуру папок проекта в Unity.
— Какие папки и файлы необходимы для систем контроля версий (VCS).


Давайте создадим новый проект в Unity под названием «testproject», и импортируем пакет «Standard Assets (Mobile)», создадим новый сценарий Test.cs, присоединим его к камере и проверим нашу структуру папок.

image

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

Вот краткий обзор всех файлов и папок.

Assembly-CSharp-vs.csproj и Assembly-CSharp.csproj – Visual Studio (с окончанием — vs на конце файлов) и MonoDevelop файлы проекта созданные для ваших C# скриптов.

Assembly-UnityScript-vs.unityproj и Assembly-UnityScript.unityproj – те же файлы проекта, но для скриптов JavaScript.

testproject.sln и TestProject-csharp.sln — файлы проектов для интегрированных средств разработки (IDE), первая включает в себя проект с языками — C #, JavaScript и Boo, в то время как второй файл — только для проекта с языком C # и предназначен для открытия в Visual Studio, потому что VS «не знает» скрипты JavaScript и Boo проекта.

testproject.userprefs и TestProject-csharp.userprefs — конфигурационные файлы, где MonoDevelop сохраняет текущие файлы, точки восстановления, время и т.д.

ПРИМЕЧАНИЕ: Все файлы перечисленные выше, за исключением всех файлов .userprefs , которые повторно создаются каждый раз при выборе Assets -> Sync MonoDevelop Project в меню редактора Unity (Синхронизация проекта).

СОВЕТ: После синхронизации проекта в MonoDevelop, тогда откроется testproject.sln со всеми файлами проекта, но если у вас нет кода JavaScript, то в проекте вы можете открыть TestProject-csharp.sln, который иметь в два раза меньше файлов проекта и никаких ошибок связанных с JS.

структура папок проекта в Unity:

image

Assets — папка, в которой хранятся все игровые ресурсы, в том числе скрипты, текстуры, звуки и т.д. Определенно это самая важная папка в вашем проекте.

ProjectSettings — в этой папке хранятся все настройки проекта Unity, такие как физика, теги, игровые настройки и т.д. Другими словами все, настройки которые вы сделали в меню Edit → Project Settings переходит в эту папку.

image

Library – локальный кэш для импортируемых Assets, при использовании внешней системы контроля версий (VCS) эта папка должна быть исключена из списка VCS.

OBJ и Temp — папки для временных файлов, создаваемых во время сборки проекта, OBJ используется MonoDevelop, Temp используется Unity.

Вот краткое руководство для Unity 4.x установка:

Для начала предположим, что у нас есть репозиторий от Subversion по адресу svn://my.svn.server.com/ и мы хотим создать проект по адресу svn://my.svn.server.com/MyUnityProject. Тогда следуйте данным шагам, чтобы сделать начальный импорт в систему:

Создайте новый проект в Unity и назовите его InitialUnityProject. Вы можете добавить сюда любые исходные ассеты или сделать это позже.
  • Включите Visible Meta files в меню Edit->Project Settings->Editor
  • Закройте Unity (чтобы убедиться, что все файлы точно сохранились).
  • Удалите каталог Library внутри директории с вашим проектом.
  • Импортируйте папку с вашим проектов в Subversion. Если вы используете командную строку клиента, это делается примерно так, из папки, где ваш начальный проект размещён:
    в случае успеха, теперь проект должен быть импортирован в Subversion, и вы можете удалить каталог InitialUnityProject, если хотите.
  • Проверьте проект в Subversion SVN по адресу svn://my.svn.server.com/MyUnityProject. И проверьте, что бы папки Assets и ProjectSettings были версифицированы.
  • Откройте проект в Unity, запустив его зажав Option или левый Alt. Открытие проекта пересоздаст папку Library, указанную в шаге 4.
  • Опционально: Установите фильтр игнорирования для неверсифицированой папки Library: svn propedit svn:ignore MyUnityProject/ Subversion будет открыт в текстовом редакторе. Добавив каталог Library.
  • Наконец примените изменения. Теперь проект должен быть настроен и готов: SVN CI -m «Окончательный импорт проекта» MyUnityProject


Подробная инструкция взята с этой страницы

Теперь вы готовы использовать свою любимую систему управления версиями (VCS). Не забудьте добавить все папки в список игнорируемых, кроме Assets и ProjectSettings папок.

Вопрос №1


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

Ответ:


1 Вариант. Создать пустой проект и переместить туда папки.
2 Вариант. Вы должны были создать проект перед тем как закачивать с репозитория. Для этого настройки пустого проекта и представлены в статье. А уж что вы потом будете делать с этим пустым проектом (синхронизировать с каким то репозиториям, или создавать с нуля свой проект и закачивать на репозиторий. Дело ваше как говорится)
Поделиться публикацией

Похожие публикации

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 23

    0
    Я что-то не совсем понял как .gitignore относиться к SVN. Или вы в своем проекте используете git а в статье описали svn?
      0
      Извиняюсь, за заблуждение, в данном примере идет обсуждение CVS (Системы контроля версий) в общем к ним относится и SVN и Git. в Оригинале видно использовался Git но тут оч уж краткое описание использования CVS (Системы контроля версий). поэтому пришлось взять пример из руководства по Unity3d который на много более подробнее.
        +1
        Version Control System, not Concurrent Versions System (CVS — одна из реализация, как и SVN, и Git)
          0
          сори) в статье не CVS, а VCS — Система управления версиями (от англ. Version Control System, VCS) — в спешке ответ писал)
      0
      Поделитесь опытом, кто как хранит в репозитории большие бинарные ассеты (картинки, текстуры, модели, звуки и музыка).
      Какие VCS используете? какой опыт в этом?
        0
        Храните ли исходники ассетов тоже в репозитории? (psd, исходные проекты 3д-моделей, т.п.)
          0
          perforce
          0
          Что-то я не понял. Вот есть у меня две папки, которые я скачал с чужого репозитория. Как мне теперь восстановить весь проект? Создать пустой и поместить папки туда или есть более прямой способ?

          Извините, что не прогуглил вопрос, но с другой стороны статья же для того и написана, чтобы не гуглить этот вопрос. Ответ имеет смысл вставить в статью апдейтом, потому что что-то мне подсказывает, что не у одного меня будет такой вопрос.
            +1
            по сути да, как вариант Создать пустой проект и переместить туда папки
            вариант 2. Вы должны были создать проект перед тем как закачивать с репозитория. Для этого настройки пустого проекта и представлены. А уж что вы потом будете делать с этим пустым проектом (синхронизировать с каким то репозиториям, или создавать с нуля свой проект и заканчивать на репозиторий. Дело ваше как говорится)
              0
              Большое спасибо. Сделайте пожалуйста UPD в статью. Уверен я не единственный, кто задавался этим вопросом.
                0
                Update Complete.
              0
              Вообще, Вы можете создать в эксплорере папку с именем проекта и просто положить скачанные папки туда. А потом открыть все это как обычный проект из Unity (open project).
                0
                Пробовал. Не получилось. Не знаю почему.
                  +1
                  Ой нет, получилось. Только очень долго открывает не подавая признаков жизни. Но если знать, то можно дождаться.
                    +1
                    зависет от степени «весомости» проекта. то бишь сколько файлов, размер файлов и т.д. Если проект из 3ех файлов откроет быстро)
                      0
                      Unity при этом импортиурет все ассеты и компилирует все скрипты в проекте. По-хорошему, он должен при этом показывать прогресс-бар (4.6 на OS X — показывает).
                        0
                        Он у меня больше полуминуты думал прежде чем прогрессбар показал. В первый раз я не дождался и подумал, что он грохнулся.
                          0
                          Да, такое возможно если большой проект или медленный комп. У меня прогресс-бар тоже не мгновенно появляется. Предполагаю (но могу ошибаться), что перед тем, как импортировать ассеты и компилировать скрипты, Unity пробегается по всем мета-файлам, чтобы восстановить содержимое папки Library и связи между объектами в сцене. Почему при этом сразу не появляется окно прогресс-бара — это вопрос к Unity Technologies.
                  0
                  А файлы *.cs.meta в игнор добавляются?
                    0
                    тут всё сказано, если они вне 2ух папок которые перечислены то да, помойму расширение meta на конце, обозначает Meta данные скриптов C#. Наверно эти Meta файлы создаются редактором кода (IDE)
                      0
                      Возле каждого файла, создаются самим Unity
                        0
                        это файлы с метаданными, их надо в игнор лист добавить (ненадо закачивать на репозиторий) извените за такую задержку) оч большую) видно не заметил ранее комментария)
                    0
                    Еще полезно ставить Asset Serialization Mode в Force Text, это упростит слияние и не только.

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

                    Самое читаемое