小程序教程

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

字号+ 作者:H5之家 来源:H5之家 2017-06-16 11:01 我要评论( )

SVN(Subversion)一直是大家愛用的版本控管軟體 (Git最近好像比較紅),第一次準備用Unity開發專案的朋友一定很疑惑,到底Unity專案要上傳哪些部分到SVN上才能好版


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


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

  • 開啟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 同一場景不同的修正。

  • Centralized design pattern來解這個問題。或多或少可以減輕一點負擔。(PS: 此段內容由Hudson提供意見修正)
  • 當然啦!這篇官方的參考說明:Using External Version Control Systems with Unity,讀一讀也是很有幫助的。
  • 以上就是小弟在三個專案上使用SVN與Unity做結合的一點心得。如有錯誤的地方還請大大不吝嗇指教,謝謝!

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


    當unity遇上svn!版本控管的二、三事/

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


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

  • 開啟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耶!!)

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    网友点评