• 熱門專題

Unity3D游戲開發之從Unity3D項目版本控制說起

作者:  發布日期:2015-07-02 21:22:27
Tag標簽:版本  項目  
  •   各位朋友,大家好,歡迎大家關注我的博客,我是秦元培,我的獨立博客地址是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、小結

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

     

About IT165 - 廣告服務 - 隱私聲明 - 版權申明 - 免責條款 - 網站地圖 - 網友投稿 - 聯系方式
本站內容來自于互聯網,僅供用于網絡技術學習,學習中請遵循相關法律法規
彩票联盟网站兴仁县| 芦山县|