Unity3D遊戲開發之從Unity3D項目版本控制說起,unity3d遊戲開發

來源:互聯網
上載者:User

Unity3D遊戲開發之從Unity3D項目版本控制說起,unity3d遊戲開發

  各位朋友,大家好,歡迎大家關注我的部落格,我是秦元培,我的獨立部落格地址是http://qinyuanpei.com、CSDN部落格地址是http://blog.csdn.net/qinyuanpei。今天我想和大家聊聊Unity3D遊戲項目的版本控制。

1、為什麼要進資料列版本設定?

  當我一個人寫代碼的時候,在我的腦海中是不存在版本控制這個概念的,因為我對整個項目的代碼如數家珍。可是當我和一群人在一起寫代碼的時候,我可能並不會清楚團隊中有誰修改了哪一行代碼,即使是一個變數的名稱或者是一個函數的名稱,在我毫不知情的情況下,可能這樣的修改會使得程式無法運行,這個時候我需要版本控制;儘管Unity3D是一個適合小團隊開發的遊戲引擎,可是即使再小的團隊同樣會有不同的分工,當大家需要將各自的工作合并到一個完整的項目中的時候,這個時候我需要版本控制;當我需要瞭解團隊成員實際的編程能力的時候,最好的方法是讓他們參與到一個項目的開發中,這樣我可以從他提交代碼的情況瞭解他的工作能力,這個時候我需要版本控制;當我希望時時刻刻對項目進行備份,並在某一個關鍵的時刻將項目恢複到一個正確的狀態的時候,複製、黏貼不會讓這個工作變得簡單,這個時候我需要版本控制。

2、怎樣在Unity3D中進資料列版本設定?

  在Unity3D中進資料列版本設定主要針對Assets和ProjectSetting這兩個檔案夾,因為除此以外的檔案和檔案夾都是Unity3D在運行過程中產生的臨時檔案,這些檔案會在使用Unity3D開啟項目後重建,因此無需對這些檔案或檔案夾進資料列版本設定。好了,在瞭解了Unity3D版本控制中需要關注的主要內容後,接下來我們要關注的是怎樣讓版本控制的軟體對我們提交的內容進行差異化識別,我們知道版本控制的一個核心任務就是將伺服器上的檔案和本地的檔案進行比對,找出哪些檔案是最新產生的、哪些檔案是被修改過的等等。因此為了方便版本控制軟體對檔案進行比對,常常需要項目變動的這些因素轉化為文本形式,如果熟悉Github的朋友應該知道,Github中判斷兩個檔案的差異就是根據文本(代碼)來比較的,因此在Unity3D中使用版本控制同樣需要遵循這個原則,好在Unity3D在管理Unity3D項目時已經考慮到了這一點,通常在對Unity3D項目進資料列版本設定的時候,我們需要做這樣的事情:

  • 通過Edit->Project Settings->Editor菜單開啟編輯器設定選項,將Version Control選項下的Mode設為Visual Meta Files,這樣Unity3D將為項目中的每個檔案或者每個檔案夾產生對應的.Meta檔案。該檔案是一個文字檔,記錄了對應檔案的相關資訊,版本控制軟體可以以此來對檔案版本進行對比和合併作業。

  • Unity3D中的資源預設是以二進位的形式進行組織的,這種組織方式對版本控制來說是不合適的,因此需要通過通過Edit->Project Settings->Editor菜單開啟編輯器設定選項,將Asset Serialization下的Mode設為Force Text。

  • 通過Edit->Prefences->External Tools找到Revision Control Diff/Merge選項,在安裝了版本控制軟體後可以在這裡找到相關的選項,以博主為例,博主使用的是TortoiseSVN,這裡的選項是TortoiseMegre。目前Unity3D支援的版本控制軟體有SourceGear DiffMerge、TKDiff、P4Megre、TortoiseMegre、WinMegre、PlasticSCM Megre。

  好了,在完成以上準備工作後,我們就可以開始進行Unity3D項目的版本控制了,目前在Unity3D中我們主要有以下三種方式來對Unity3D項目進資料列版本設定:

2.1、使用Asset Server進資料列版本設定

  Unity3D的Asset Server是一個Unity3D內部整合的版本控制軟體,它和我們熟知的SVN類似,適合在小團隊內進資料列版本設定,這是一個收費軟體,儘管在某些方面它甚至比SVN還要方便,不過在實際的項目中使用這個的還是比較少的,所以如果大家對這個感興趣,可以從這裡瞭解它的具體情況,這裡我們不打算介紹這個軟體的使用。

Unity3D遊戲製作(四)——Asset Server搭建

【教程】Asset Server(聯合開發)

2.2、使用Github進資料列版本設定

  使用Github進資料列版本設定時可以在Git倉庫中添加一個.gitignore檔案來對項目中需要同步的檔案進行過濾,在文章開始我們已經知道Unity3D項目的版本控制主要針對Assets和ProjectSetting這兩個檔案,因此.gitignore的內容可以這樣填寫:

Library/Temp/*.sln*.csproj*.sln*.userprefs*.unityproj*.DS_Store

  這樣每次提交檔案的時候Github將忽略這些檔案的更改。關於Github的使用及其相關命令可以查看這裡:

總結自己的Git常用命令

Git遠程操作詳解

  Github中每個倉庫的容量限制為1G,適合小項目的版本控制,對於大型項目的版本控制應該考慮使用SVN。

2.3、使用SVN進資料列版本設定

  使用SVN進資料列版本設定時可以通過右鍵菜單將某些檔案和檔案夾添加到忽略的檔案清單中,這樣SVN在每次提交檔案的時候將忽略這些檔案的更改。這塊兒其實和Github的.gitignore是相同的。SVN常用的軟體組合是 TortoiseSVN(用戶端)+VisualSVN Server(服務端),具體內容請參考這2篇文章:SVN使用教程總結和用戶端TortoiseSVN的安裝及使用方法

3、小結

  不管使用什麼版本控制軟體,建立相關的代碼提交規範和流程式控制制規範都是必要的,因此在團隊中應該有一個人負責對團隊成員提交的代碼進行審核和正常化,這樣可以減少因為因為代碼提交而產生的各種問題。好了,今天這篇文章先寫到這裡了,希望大家喜歡!

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。轉載請註明本文作者及出處,謝謝!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.