1. 程式人生 > >Unity SVN 管理(二)

Unity SVN 管理(二)



上篇文章講述了SVN搭建的一個整體過程,不知道是否能對你起到幫助的作用。

今天就講述一下,在Untiy使用SVN做管理時所需要注意的東西吧。。

SVN成員的Untiy配置

上篇檔案說過,
為了配合SVN,需要對Unity工程做一些設定:
選單:Edit->Project Settings->Editor:Version Control 選擇為[Visible Meta Files];
選單:Editor-> Project Settings->Editor:Asset Serialization Mode選擇為:[Force Text]
而這些設定不僅僅是對於你一個人的Unity配置的,每個使用SVN的成員,都需要配置。

Unity檔案上傳

Unity需要管理的資料夾不多,一個是Asset,一個是Project Settings,想必大家看過上一邊也已經知道了。
Project Settings沒有什麼多說了(目前我沒有接觸到)
但是Asset這個資料夾需要講述的就大有來頭了。

Asset

因為這個資料夾中都是你Untiy場景中所需要的檔案,指令碼等等。

指令碼

首先,指令碼檔案的提交更新這個是必須的,如果裝有VS的小夥伴可以下一個VS的SVN外掛,方便與在VS中提交和更新程式碼,這些就不在此贅述了。
指令碼的更新具體可以說是
1.個人負責部分的更新。
這部分的更新比較簡單,因為是自己單獨管理的指令碼或者是shader等等,這些和別人的並沒有交集(只有自己引用和繼承等),可以直接提交修改等等。
2.公共部分的更新。
這塊一定要有所注意,因為別人的對你方法的引用可能在你修改提交之後造成專案的生成錯誤。
所以,公共部分的更新,大多數是主程更新,或者是在集體討論過之後,對公共方法更新。
這一部分不易自己修改,而且要保證每次修改只有一個人修改,修改之後通知大家一起更新,如果只有個人修改公共部分,在別人更新或者提交程式碼的時候就可能造成衝突。
這些在一起工作的小夥伴們,只要交流好,應該很好適應SVN公共部分的維護。掌握好節奏,公共部分就不會每天都出現衝突現象了(別問我怎麼知道的,我不會給你說修改衝突多麻煩)

資源

模型資源,貼圖資源,音訊資源等等你能想到的各種資源,都是每個人都需要用到的,可能會修改預製體,可能會修改動畫控制器。這些就想是指令碼的公共部分一樣,一定要小夥伴們交流過之後,提交,更新。
(meta檔案一定要上傳)

場景檔案

Scenes,這個想必是最麻煩的了,一個主場景,每個專案成員都有修改的可能,如果需要修改Scenes都會讓大家都停下手頭修改這個場景的檔案,等待主場景的修改。

這樣就很是耽誤手頭的工作,這樣怎麼辦好呢?

在逛論壇的時候我看到過一句話“用一個人當作 SVN 管理員。 所有東西 都是通過這個管理員提交。其餘人只能下載 ( 沒提交許可權 ) 。修改的所有東西全部給管理員整合”這樣不失是一種很好的方法
所以這樣就有一個很不錯的SVN管理專案的方法了:
(網上大神給出的)


1.由負責整合的專案組成員管理並提交該專案更新到svn資料庫
2.其他協作人員從svn資料庫下載最新的專案檔案
3.協作人員對自己負責的內容進行工作,然後將成果輸出。輸出時不要鉤選依賴
4.將輸出的unitypackage檔案提交給整合人員(通過svn或者其他途徑都可以)
5.整合人員將新的unitypackage匯入專案,進行優化,檢查後再提交到svn資料庫供其他協作人員一起下載使用。

這樣就會有人問,既然是Unitypackage可以把所有檔案都打包進去,為什麼還要之前去管理指令碼啊,資源什麼的。
(很好,這樣說的我真的不知道怎麼回答了)
好吧,我就解答一下,因為很多時候,我們修改的部分東西其實是很小的 一部分,而這一部分全部交給整合的人員來做的話,沒把整合人員累趴下的,並且在一個公司裡邊整合人員才是更加需要去寫程式碼的人吧~都是要下班的少年郎~~

所以,我放開了,提交的許可權,而這些許可權就是你對小夥伴們的信任了。(如果你們工作起來很有默契完全是可以的啊~再加上,我寫了一個執行指令碼再SVN伺服器上,每天都會備份三次當前的專案,而且誰出錯誰請吃飯~哈哈哈哈哈哈哈)

我們的方法

一定要醒目,一定要大。

(最重要的一點,保證SVN伺服器中的專案是最為正確的)
上邊是對大神們的一種總結,使用起來還是很方便的。
但是,我們還是任性的使用了一種很暴力的方法,就是,每個人建立了屬於自己的場景做修改並完成預製體,指令碼的修改,自己的場景是和主場景一毛一樣的。

小夥伴們修改完自己的場景之後,加入主場景測試,沒有問題了,匯出unitypackage提交給整合人員,整合人員去匯入,測試,上傳。這樣就大大提高了工作的效率,也保證了專案的完整性和正確性。