當Unity遇上SVN!版本控管的二、三事

本文详细介绍了如何将Unity专案与SVN版本控制系统结合使用,包括如何开启外部版本控制、上载关键文件、解决冲突等问题。重点强调了上载Assets资料夹下的素材文件,如Script、Shader、Texture等,并提供了非专业版用户解决场景文件冲突的策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


SVN(Subversion) 一直是大家愛用的版本控管軟體 ( Git 最近好像比較紅),第一次準備用Unity開發專案的朋友一定很疑惑,到底Unity專案要上傳哪些部分到SVN上才能好版本控管?Unity整體專案除了Script本身外,還包含了許多他特有的東西,如:Prefab、Material、Texture、Shader、Layer、Tag等,這些跟以前純C/C++、JAVA Code以外的東西。


拉裡拉紮的講一堆,其實就幾個重點把握好就OK了,來看看吧!

  1. 開啟Unity對外部版本控制的選項。Editor -> Project Setting -> Editor,選擇Meta File。開啟後,Unity會為每個Asset檔案多產生一份與檔名相同的meta file,其中連資料夾也會有。例如:ABC.png就會在同一個位置下出現ABC.png.mata的檔案。


這個Meta file裡頭存放了Unity對每個Assets之間的連結,例如:那個Component與那個Perfab有關連,所以千萬別忘了上傳至SVN。

  • 基本上你只需要上傳Assets資料夾底下,你所擺放的資料,也就是專案所用到的所有素材,例如:Script、Shader、Texture、模型檔。
  • Assets外的所有檔案與資料夾都是Unity自行產生的。裡面其實保存了一些雜七雜八的 Cache 資料。這些資料會根據使用者不同的操作,產生一些每個人都不一樣的Cache檔。

  • 將這些東西上傳至 SVN,就很容易在 Merge 時出現 “衝突"。 所以根據我自己的經驗這些就是不上傳。那Editor這些設定怎麼辦?根據網友Hudson的轉述,可以將ProjectSettings也上傳至SVN這樣就可保有設定,但其他部分還是不要上傳。
  • 至於兩個人同時修改 “場景檔" 所造成的衝突,如果你是非Pro的版本那 “無解"。Unity在3.5版本之後可以將場景格式改為 Text Mode,設定的地方跟 Meta file 一樣 Editor -> Project Setting -> Editor,將 Asset Serialization 改為 Force Text 就可以了。這樣 SNV 就可以幫你 Merge 同一場景不同的修正。

  • 非Pro的使用者要規避這個問題,其實可以從一些設計上去避免,例如:將彼此溝通的資料擺在一個Singleton的class裡頭,最為共同存取之用;也可以試試Centralized design pattern來解這個問題。或多或少可以減輕一點負擔。(PS: 此段內容由Hudson提供意見修正)
  • 當然啦!這篇官方的參考說明:Using External Version Control Systems with Unity,讀一讀也是很有幫助的。

以上就是小弟在三個專案上使用SVN與Unity做結合的一點心得。如有錯誤的地方還請大大不吝嗇指教,謝謝!

(PS: 在Unity Store上有賣一個叫EZ SVN的東西,不知道有沒有人玩過。有的話看能能跟大家分享一下這是啥東西,一個要賣$5.00耶!!)


http://www.unityin.com/2012/08/當unity遇上svn!版本控管的二、三事/
SVN(Subversion) 一直是大家愛用的版本控管軟體 ( Git 最近好像比較紅),第一次準備用Unity開發專案的朋友一定很疑惑,到底Unity專案要上傳哪些部分到SVN上才能好版本控管?Unity整體專案除了Script本身外,還包含了許多他特有的東西,如:Prefab、Material、Texture、Shader、Layer、Tag等,這些跟以前純C/C++、JAVA Code以外的東西。


拉裡拉紮的講一堆,其實就幾個重點把握好就OK了,來看看吧!

  1. 開啟Unity對外部版本控制的選項。Editor -> Project Setting -> Editor,選擇Meta File。開啟後,Unity會為每個Asset檔案多產生一份與檔名相同的meta file,其中連資料夾也會有。例如:ABC.png就會在同一個位置下出現ABC.png.mata的檔案。

這個Meta file裡頭存放了Unity對每個Assets之間的連結,例如:那個Component與那個Perfab有關連,所以千萬別忘了上傳至SVN。

  • 基本上你只需要上傳Assets資料夾底下,你所擺放的資料,也就是專案所用到的所有素材,例如:Script、Shader、Texture、模型檔。
  • Assets外的所有檔案與資料夾都是Unity自行產生的。裡面其實保存了一些雜七雜八的 Cache 資料。這些資料會根據使用者不同的操作,產生一些每個人都不一樣的Cache檔。
    將這些東西上傳至 SVN,就很容易在 Merge 時出現 “衝突"。 所以根據我自己的經驗這些就是不上傳。那Editor這些設定怎麼辦?根據網友Hudson的轉述,可以將ProjectSettings也上傳至SVN這樣就可保有設定,但其他部分還是不要上傳。
  • 至於兩個人同時修改 “場景檔" 所造成的衝突,如果你是非Pro的版本那 “無解"。Unity在3.5版本之後可以將場景格式改為 Text Mode,設定的地方跟 Meta file 一樣 Editor -> Project Setting -> Editor,將 Asset Serialization 改為 Force Text 就可以了。這樣 SNV 就可以幫你 Merge 同一場景不同的修正。
    非Pro的使用者要規避這個問題,其實可以從一些設計上去避免,例如:將彼此溝通的資料擺在一個Singleton的class裡頭,最為共同存取之用;也可以試試Centralized design pattern來解這個問題。或多或少可以減輕一點負擔。(PS: 此段內容由Hudson提供意見修正)
  • 當然啦!這篇官方的參考說明:Using External Version Control Systems with Unity,讀一讀也是很有幫助的。

以上就是小弟在三個專案上使用SVN與Unity做結合的一點心得。如有錯誤的地方還請大大不吝嗇指教,謝謝!

(PS: 在Unity Store上有賣一個叫EZ SVN的東西,不知道有沒有人玩過。有的話看能能跟大家分享一下這是啥東西,一個要賣$5.00耶!!)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值