介绍

Unity 支持使用二进制或文本序列化,对于开发而言,最好使用文本序列化。

  • 使用文本方式序列化后的资源可以轻松地查看文件结构、查找引用等等。
  • 但如果使用文本序列化,则需要禁用版本控制软件对 Unity 管理的资源的处理,防止对其进行合并等操作。

方案

获得扩展名

Windows 下使用 Git for Windows,macOS 下使用终端:

1
find . -type f | perl -ne 'print $1 if m/\.([^.\/]+)$/' | sort -u

linux - How can I find all of the distinct file extensions in a folder hierarchy? - Stack Overflow

后处理

根据需要删除不需要处理的扩展名。

使用文本编辑器查找替换功能,将扩展名前面加入 *.,后面加入 binary,然后将内容复制到项目根目录下的 .gitattributes 文件中。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
*.bmp     binary
*.bytes   binary
*.fbx     binary
*.jpg     binary
*.mp3     binary
*.png     binary
*.prefab  binary
*.tga     binary
*.unity   binary
*.wav     binary

GitLab 支持

有人在 Issue 中提出在 Merge Request 中如何禁用指定的文件的差异显示: Ignore Binary Files from Diff · Issue #6916 · gitlabhq/gitlabhq

只需要将上面得到的内容复制到 GitLab 服务器上仓库的 info/attributes 文件中。

参考资料