在Unity 3D中使用Git源代码控制的最佳实践是什么,特别是在处理Unity 3D项目的二进制性质时?请描述工作流程,在.gitignore中包含哪些路径,应该在Unity和/或项目中设置什么设置,以及任何其他应该注意的特殊事情。

注意:我知道使用资产服务器是unity推荐的方式,但出于各种原因,我想使用Git。请不要回答,状态或争论,我应该只是使用资产服务器。资产服务器真的不是我的选择。


当前回答

我们现在有无缝集成到unity与Github到unity扩展… https://unity.github.com/

新的GitHub for Unity扩展带来了GitHub工作流和更多的Unity,提供支持大文件与Git LFS和文件锁定。

在撰写本文时,该项目仍处于alpha阶段,但仍可用于个人项目。

其他回答

在Unity 4.3中,你还必须从首选项中启用外部选项,但自从Unity 4.5以来,他们放弃了这个选项,所以完整的设置过程如下:

在编辑器→项目设置→编辑器→版本控制模式中切换到可见元文件 在编辑器→项目设置→编辑器→资产序列化模式中切换到强制文本 从文件菜单保存场景和项目

此外,我们的团队正在使用一些扩展的.gitignore文件:

# =============== #
# 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

注意,您需要保存在源代码控制下的文件夹只有Assets和ProjectSettings。

更多关于将Unity项目置于源代码控制之下的信息,你可以在这篇文章中找到。

I suggest that you make a .gitignore file that includes everything other than the assets folder (all the other files that are originally inside a unity project). Next, you should place all your game projects in one folder. Next, duplicate the .gitignore in every single project folder for your games. This will exclude the libraries and unnecessary folders inside your projects other than the assets. If you have any projects you don't want, then put them in a new .gitignore inside where your game projects are stored. Note: You can have multiple .gitignore's and .gitignore is based on relative paths. I hope that helped!

如果你使用源代码控制,确保你有一个git忽略无用的文件:https://github.com/github/gitignore/blob/main/Unity.gitignore

Unity还提供了自己的源代码版本控制。在unity5之前,它是unityAsset Server,但现在它贬值了。并推出新的SVN控制系统unity collaboration。但是使用unity和任何SVN的主要问题是提交和合并场景。但svn的Non为我们提供了解决这种冲突或合并场景的方法。所以取决于你熟悉哪个SVN。我在Mac上使用SmartSVN工具。在Windows上乌龟。

编辑->项目设置->编辑器

“版本控制”设置为“元文件”。将资产序列化设置为强制文本。

我觉得这就是你想要的。