Unity3d版本控制


官網地址:

http://unity3d.com/support/documentation/Manual/ExternalVersionControlSystemSupport.html

官方有提供,但是要花錢。可以用SVN。

 

轉一個別人的翻譯:

算是從unity3d官方網站上的翻譯,如果你沒有看到,可以看下,這個也是我自己碰到比較麻煩的事情,經常windows下提交,然后mac下更新下去一堆關聯沒了,有些可以reimport可以變好,有些要重新關聯,麻煩的很,因為我們漏了一些東西沒有提交到版本控制中。

 

    1. unity3d中建立一個項目,如:InitialUnityProject,你可以加入一些assetspackage或者放到以后加也沒關系,我一般是剛開始是空的項目,空的場景,然后保存,一些asset可以在用到的時候選擇性的添加,不然一堆東西看着也是麻煩的
    2. Edit->Project Settings->Editor,選擇Enable, 我在4.3.1的時候,安裝了默認是disable的,這里要開起來,這樣你的asset每個就會有meta 文件生成,大家可以用ultraedit等打開看下里面的東西,注意這個文件最好生成后不要自己去修改和刪除,提交到svn即可,這個文件是文本,svn可以merge
    3. 退出unity3d,當然你可以保存你的空場景
    4. 刪除Library下的所有文件和目錄,不過以下的文件要保留,其實也就是一些配置的東西:
      • EditorBuildSettings.asset
      • InputManager.asset
      • ProjectSettings.asset
      • QualitySettings.asset
      • TagManager.asset
      • TimeManager.asset
      • AudioManager.asset
      • DynamicsManager.asset
      • NetworkManager.asset
      • 不過在mac下面比較搞笑的是,它不會自動生成cache目錄,他會生成其他的如preview之類的,但cache不會,你如果reimport,則他會報錯,說不能從temp復制到cache.搞不清楚他自己為啥不創建,懷疑寫程序的人有點想當然了,沒判斷目錄是否存在吧。所以在mac下,自己要創建下cache目錄,不然你報錯可能不知道怎么回事情。
    5. 把項目文件夾Importsvn服務器上,命令行如下:
      svn import -m"Initial project import" InitialUnityProject svn://my.svn.server.com/MyUnityProject
    6. 你可以從svn 服務器上check out出來整個項目,任何組內的開發人員都可以
      svn co svn://my.svn.server.com/MyUnityProject
      看看所有用到的Assets下面的文件是否都已經在版本控制下了
    7. 建議: 可以為Library設立ignore ,如果用命令行的話
      svn propedit svn:ignore MyUnityProject/Library
      svn 
      會打開一個文本編輯器,添加所有除了下面文件外的目錄和文件到這個文本中
      • EditorBuildSettings.asset
      • InputManager.asset
      • ProjectSettings.asset
      • QualitySettings.asset
      • TagManager.asset
      • TimeManager.asset
      • AudioManager.asset
      • DynamicsManager.asset
      • NetworkManager.asset
    8. 當用unity3d打開項目的時候,一些丟失的文件會全部重新建立,如Library中被我們刪除了的,如果還是不行,可以用reimport all
    9. 最后就可以用svn commit
      svn ci -m"Finishing project import" MyUnityProject

 

一些注意點:

(1) Unity3D的二進制資源必須加鎖進行版本控制,因為它沒辦法merge;
(2) Unity3D自己產生的C#工程相關文件,包括VS產生或者Mono產生的,都不需要歸入版本控制;
(3) 在新加入項時,Unity3D會產生一個同名的.meta文件,這個文件記錄了此項一個唯一的64位的guid,這個文件必須上傳,否則會出現各種缺失的異常情況(比如腳本Miss等)
(4) 對於Library文件夾,有以下幾個.Asset文件需要進行版本管理:
               TimeManager
               TagManager
               QualitySettings
               ProjectSettings
               NetworkManager
               InputManager
               EditorBuildSettings
               DynamicsManager
               AudioManager
即便如此,在使用Editor進行開發時,由於需要經常改動場景的.unity 文件,而這個是二進制的,所以需要得鎖且不能Merge。感覺並行開發的難度還是比較大的,Unity3D還是比較適合個人開發者和較小團隊開發,對於大型團隊開發,無論是從版本管理還是代碼結構上,都覺得不太方便和自然。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM