我想實現一個Git我的一個遊戲項目。對於腳本,它會很好地工作,因爲它們已經在文本中。但是場景文件呢?它們是二進制文件,因此合併它們將非常困難。如果我在場景中放置一個遊戲對象並且另一個同事將另一個放在同一場景中怎麼辦?我們將如何合併我們的場景?或者我們應該總是手動導出/導入它?合併統一3D場景使用Git
在此先感謝。
我想實現一個Git我的一個遊戲項目。對於腳本,它會很好地工作,因爲它們已經在文本中。但是場景文件呢?它們是二進制文件,因此合併它們將非常困難。如果我在場景中放置一個遊戲對象並且另一個同事將另一個放在同一場景中怎麼辦?我們將如何合併我們的場景?或者我們應該總是手動導出/導入它?合併統一3D場景使用Git
在此先感謝。
在「源」倉庫通常持有的二進制對象是有爭議的觀點。不過最近出現了一些專門的工具http://wiki.unity3d.com/index.php/UniMerge ...所以他們可以從頭開始購買或寫入。
工具好了,同時兩個很好的建議。我希望我能接受這兩個答案。但你的答案是更好的恕我直言。謝謝。 – 2015-04-07 02:49:30
_「通常在'源'存儲庫中保存二進制對象是有爭議的想法」_ - 這可以說是太寬泛了。在_compilation_ - _yes_期間生成的二進制文件;項目所需的二進制文件爲_built_ - _no_。例如在我的web項目中,我們將**。PNG ** s添加到SCM,因爲它們是編譯所必需的;部署;並由團隊的其他成員使用。同樣,我們添加_audio_; _video_和Unity的其他媒體。可能不同的是你有兩個不同的回購;一個用於源代碼,另一個用於Unity Talk視頻期間由其中一個開發團隊概述的資產 – MickyD 2015-04-07 04:50:28
您可以保存在文本模式下的場景文件:Edit->Project Settings->Editor->Asset Serialization: Force Text
這樣的場景保存爲Yaml
文件,有關格式的更多細節,看看在doc。
儘管我有時用手合併的場景,這不是一個簡單的操作,你必須非常小心(GIT automerge不能在案件的99%正確合併它們)。
嗯,同時有兩個很好的建議。我希望我能接受這兩個答案。謝謝。 – 2015-04-07 02:49:39
強力文字絕對有助於事情的發展。 Unity也可以任意重新排列你的場景,所以像Scene Merge或這個人的分類器這樣的工具也有助於避免衝突。 場景合併:https://www.assetstore.unity3d.com/en/#!/content/5412 分類器:http://forums.playstaxel.com/threads/unity-and-git.228/ – scone 2015-04-07 20:54:09
@ scone - _Scene Merge_的問題在於它在SCM中創建一個SCM,方法是強制您通過Unity內的** Create Snapshot **執行非Git快照。如果我忘記這麼做會發生什麼? – MickyD 2015-04-09 08:29:22
您應該手動合併它們,只是「添加」最新版本的文件。一個更好的工作流程將是隻允許一個人在某個時刻改變某個場景。 – folkol 2015-04-06 11:15:13
對於任何可視化的併發編輯,無論是WinForms, XAML; .PNG;或PSD。由一個建立Unity團隊的Unity遊戲團隊提出的一個建議是,不要通過設計人員在場景中放置任何東西,而是**在運行時使用代碼通過預製晶圓廠實例化所有內容**。 – MickyD 2015-04-07 05:00:15
@MickyDuncan:那麼,在那種情況下,關卡設計呢?從一個XML文件中創建一個關卡並不像通過編輯器那樣直觀。 – 2015-05-04 04:07:37