Для того что бы вести разработку на Unity и использовать при этом Git, следует сделать следующее:
- Настроить редактор для отображения meta-файлов и для хранения всех изменений в этих meta-файлах:
- Создать проект в Uinty
- Создать репозиторий в папке созданного проекта
- Добавить файл игнорирования .gitignore следующего содержания:
-
[Ll]ibrary/ [Tt]emp/ [Oo]bj/ [Bb]uild/ # Autogenerated VS/MD solution and project files *.csproj *.unityproj *.sln *.suo *.tmp *.user *.userprefs *.pidb *.booproj # Unity3D generated meta files *.pidb.meta # Unity3D Generated File On Crash Reports sysinfo.txt
Под Windows создать файл с названием .gitignor из контекстного меню скорее всего не получится, Windows будет ругаться на отсутствие имени файла. Но это легко можно обойти: создаём файл .gitignor.txt, затем открываем окно команд в папке с этим файлом и командой
ren .gitignor.txt .gitignor
переименовываем файл.
Тут важно понимать что комитить следует только то, что хранится в папках Assets и ProjectSettings, причём если вы создаёте префаб, новый скрипт, просто папку или ещё что-то, то Unity автоматически сгенерирует meta-файлы под созданный объект. Например при создании скрипта CarEngine.cs создастся файл CarEngine.cs.meta, и оба этих файла следует комитить. Повторюсь, обязательно следует комитить meta-файлы! :)
- В Unity при создании скриптов используются специальные шаблоны. По своей сути это обыкновенные текстовые файлы, но по умолчанию они имеют Unix’овый формат конца строк (LF) и если вы работаете с Unity под Windows, то каждый раз создавая скрипт из контекстного меню Unity, в этом скрипте необходимо будет исправлять формат конца строк на тот который принят в Windows (CRLF). Если для редактирования скриптов вы используете Visual Studio, то эта IDE к примеру будет всё время предлагать это сделать.
Для того что бы по умолчанию в шаблоне использовался формат конца строк CRLF, следует поправить шаблоны.
Шаблоны лежат тут C:\Program Files\Unity\Editor\Data\Resources\ScriptTemplates
Каждый из них следует открыть через Notepad++ и исправить формат конца строк на CRLF (Notepad++ нужно запускать от имени администратора)
- При индексировании файлов могут возникать проблемы вида:
git -c diff.mnemonicprefix=false -c core.quotepath=false add -f — Assets/Editor/CarEngineEditor.cs.meta
fatal: LF would be replaced by CRLF in Assets/Editor/CarEngineEditor.cs.meta
Файл при этом в индекс не добавляется. Исправить это не трудно, достаточно в папке проекта создать файл .gitattributes (создаётся так же как файл .gitignore) и добавить ему в качестве содержимого:# Apply native OS line-endings on checkout of these files... *.boo text *.c text *.cginc text *.config text *.contentproj text *.cpp text *.dae text *.DAE text *.dtd text *.fx text *.glsl text *.h text *.inc text *.ini text *.js text *.JSFL text *.jsfl text *.json text *.log text *.md text *.mel text *.php text *.shader text *.txt text *.TXT text *.xaml text *.xml text *.xsd text .gitattributes text .gitignore text COPYING text INSTALL* text KEYS* text LICENSE* text NEWS* text NOTICE* text README* text TODO* text WHATSNEW* text # Apply Unix-style LF line-endings on checkout of these files... *.meta text eol=lf *.sh text eol=lf *.vspscc text eol=lf .htaccess text eol=lf # Previous "binary" *.unity text eol=lf *.asset text eol=lf *.prefab text eol=lf # Apply Windows/DOS-style CR-LF line-endings on checkout of these files... *.bat text eol=crlf *.cmd text eol=crlf *.csproj text eol=crlf *.sln text eol=crlf *.user text eol=crlf *.vcproj text eol=crlf *.cs text eol=crlf *.css text eol=crlf *.htm text eol=crlf *.html text eol=crlf # No end-of-line conversions are applied (i.e., "-text -diff") to these files... *.7z binary *.ai binary *.anim binary *.apk binary *.bin binary *.bmp binary *.BMP binary *.com binary *.COM binary *.controller binary *.cubemap binary *.dex binary *.dll binary *.DLL binary *.dylib binary *.eps binary *.exe binary *.EXE binary *.exr binary *.fbx binary *.FBX binary *.fla binary *.flare binary *.flv binary *.gif binary *.guiskin binary *.gz binary *.ht binary *.ico binary *.jpeg binary *.jpg binary *.keystore binary *.mask binary *.mat binary *.mb binary *.mp3 binary *.mp4 binary *.mpg binary *.ogg binary *.PCX binary *.pcx binary *.pdb binary *.pdf binary *.physicMaterial binary *.physicmaterial binary *.png binary *.ps binary *.psd binary *.qt binary *.sobinary binary *.swf binary *.tga binary *.tif binary *.tiff binary *.ttf binary *.TTF binary *.unitypackage binary *.unityPackage binary *.wav binary *.wmv binary *.zip binary *.ZIP binary
Если тут чего-то не хватает, то добавьте сами :)
- Не забудьте что файлы .gitignore и .gitattributes тоже следует проиндексировать и закомитить.