Unity 之 版本控制 使用SVN遇到的问题(检测不到.meta文件)
Unity 使用SVN版本控制遇到的小问题:
开发中总会遇到各种小问题,,,问题虽然不大却费时费力,,,不过还好每次遇到问题都会问前辈或者上网查资料,都能学到很多平常不会出深究的东西,都会明白一些道理,有所收获,,,下面分享一下,帮各位添过的坑… …
问题描述:预制体脚本和资源丢失
遇到这样个问题:我做好了一个prefab。包含什么图片按钮和挂在上面的脚本,上传prefab和cs文件到SVN,但是别人pull下来project后发现你这个prefab的脚本是missing的。
这个就很麻烦,别人用不了你得预制体,那么对于多人开发的情况,不管是游戏资源的整合还是资源的使用,,这都是一个不能接受的事情,,, 这个问题原因就在于这就是前面提到的meta文件。Meta文件中有个重要的东西就是guid,guid是文件唯一标示,文件中的关联关系都是基于guid而不是基于文件名称和文件路径的。当一个新文件创建之后,unity会自己主动给它生成一个guid。
假设没有上传meta,所以两个project的guid不同,则关联关系自然找不到。
所以我们也必须把相应的meta文件上传。当然,假设愿意解析meta文件,然后直接改动guid就是更好的做法了。当然相对的也easy出错。
当移动或重命名资源时。确保你也对应的移动或重命名了meta文件。当脚本文件内容发生变化的时候,实际上guid是不会发生变化的。并且unity事实上并不基于文件内容增量变化的版本号管理。而是覆盖式的。
解决方法 :
1、在Uniyt里面, Edit->project settings->editor 里面设置Version Control的Model为Meta Files,表示以meta文件来记录资源版本。默认为Disabled
2、设置Asset Serialization的Mode为Force Text,表示以纯文本形式保存unity文件。Mixed和Force Binary都是二进制,不利于版本管理。
3、提交的时候仅提交Assets 和 ProjectSettings 两个目录下所有东西,忽略掉其他所有目录和文件
(当提交之后,别人更新下来之后用不了,,,你这边又重新提交,他那边还是更新不到,可以删除你最后修改的文件夹,重新更新,)
我的问题:SVN更新的时候检测不到.meta文件,没有上传,,,所以别人更新下来之后会有上面的问题…
(不知道为什么就是检测不到…)
解决方法:
方法一:点击下面Non-versioned 不受版本控制的文件选择一下,,,
方法二:
在工程文件下:选中要提交的.meta 右键TortoriseSVN -> Add 就可以了,
这样再次上传你的项目…SVN就可以检测到了,,,
[PS:上传预制体,没有上传.meta文件,当别人更新下来之后,他的Unity会自动生成.meta文件,当你重新提交到版本库的时候,他再更新是不会有更新文件显示的,需要删除后,再次更新]
希望有遇到这类问题的童鞋可以评论,分享一下,,,若有不足,敬请指正。。。
文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。
原文链接:czhenya.blog.csdn.net/article/details/83043688
- 点赞
- 收藏
- 关注作者
评论(0)