最近在使用git管理一个Unity项目,但是发现Unity会生成很多不知含义的文件,造成git每次提交都有很多新文件需要提交。最后决定搞清楚Unity工程目录的结构,净化git仓库文件。
目录结构
目录、文件 | 说明 |
---|---|
Assets | 保存项目的图片、脚本、动画配置等等。一般是我们开发工程中的直接产物,需要提交到仓库管理起来。 |
ProjectSettings | 所有通过Edit → Project Settings配置的信息都保存在这里。 |
obj、Temp | 临时文件目录 |
Library | 缓存文件。这个目录下的文件都会自动生成。 |
*-vs.csproj | Visual Studio IDE C#工程文件 |
*.csproj | MonoDevelop IDE C#工程文件 |
*-vs.unityproj | Visual Studio IDE JavaScript工程文件 |
*.unityproj | MonoDevelop IDE JavaScript工程文件 |
*-csharp.sln | Visual Studio 的解决方案 |
*.sln | MonoDevelop IDE 的解决方案 |
以上就是一个Unity工程的一般目录结构。但是除了Assets、ProjectSettings两个目录里的内容,其他的文件和目录都是自动生成的,完全没有必要放到仓库中进行管理。
另外为了让仓库能更好的管理项目文件,还需要进行一些配置。
版本控制
打开Unity项目后进行如下设置:
Editor -> Project Settings -> Editor -> Version Control -> Mode = Hidden Meta Files 这样就不会生成*.meta文件
Editor -> Project Settings -> Editor -> Asset Serialization -> Mode = Force Text 这样项目文件会强制使用文本方式保存,便于追溯修改历史。
- 忽略不需要的文件。 下面是一个git的忽略文件列表供参考。
===============
Unity generated
===============
Temp/
Library/
=====================================
Visual Studio / MonoDevelop generated
=====================================
ExportedObj/
obj/
*.svd
*.userprefs
/*.csproj
*.pidb
*.suo
/*.sln
*.user
*.unityproj
*.booproj
============
OS generated
============
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db