svn - Unity *.meta 文件、SVN 和外部共享存储库

标签 svn unity3d svn-externals

我有几个 Unity Pro (4.5),所有这些项目都需要共享一个通用的 SVN 资源库。这主要包括脚本,但也可能有其他 Assets 。

最初,我通过在适当的目录上使用 svn:external 属性来设置它。但是,这不起作用。因为 *.meta 文件是按项目生成的。由于这个原因,我无法在共享存储库中提交 *.meta 文件。这最终会导致 Assets 引用被破坏。

如何正确地在多个 Unity 项目之间创建共享的外部存储库? Unity 处理 *.meta 文件的方式甚至可能吗?

最佳答案

元文件对于 Assets 引用是必需的。他们为 Assets 提供他们的 guids,这些 guids 用于场景和预制件等的序列化。因此,如果您将场景或预制件放入存储库中,那么每个引用的 Assets 也应该提交其元文件。如果您不这样做,那么 Unity 将为您的 Assets 生成新的图元文件并为它们提供随机 guid,从而破坏所有引用。

因此您的公共(public)存储库必须包含它包含的所有 Assets 的图元文件。如果您从一开始就没有这样做,那么您应该现在就开始。打开其中一个项目,修复任何损坏的引用并提交所有图元文件以及对属于公共(public)存储库的对象的任何其他更改。然后,在使用公共(public)存储库的每个其他项目中拉取并覆盖所有内容。如果现在出现任何损坏的引用,那么它们应该只来自本地场景。也修复这些问题。

现在,对于您的下一个项目,您可以简单地提取所有内容,包括图元文件。 Unity 将使用图元文件告诉它使用的 guid,并且所有引用都将完好无损。

关于svn - Unity *.meta 文件、SVN 和外部共享存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29153960/

相关文章:

svn - TeamCity与SVN的连接失败-证书被拒绝

java - 在修订控制中组织我自己的外部库

svn - 有没有办法从 TortoiseSVN Explorer 图标装饰中排除 {ignore-on-commit} 更改?

c# - 暂停不起作用(Unity c#)

ubuntu - 如何在 ubuntu 15.10 上安装 unity3d

c# - 统一和缺失的方法和类

php - 如何在 PhpDoc 文档 block 中使用 NetBeans 和 SVN @version 标记?

SVN:使用 TortoiseSVN 更新工作副本以排除外部对象?

svn - Zend 框架和 svn :externals

svn - svn 是否为 :externals accept relative paths?