2015-04-06 12 views
5

Tôi đang cố gắng triển khai Git cho một dự án trò chơi của tôi. Đối với các tập lệnh, nó sẽ hoạt động tốt vì chúng đã có trong văn bản. Nhưng những gì về các tập tin cảnh? Chúng là các tệp nhị phân nên việc hợp nhất chúng sẽ khá khó khăn. Nếu tôi đặt một đối tượng trò chơi trong cảnh và một đồng nghiệp khác đặt một đối tượng khác trong cùng một cảnh thì sao? Làm thế nào chúng ta sẽ hợp nhất các cảnh của chúng ta? Hoặc chúng ta có nên luôn xuất/nhập thủ công không?Phối cảnh 3D hợp nhất với Git

Xin cảm ơn trước.

+1

Bạn nên hợp nhất chúng theo cách thủ công và chỉ cần "thêm" phiên bản mới nhất của tệp. Một luồng công việc tốt hơn sẽ chỉ để cho một người vào thời điểm đó thay đổi một cảnh nhất định. – folkol

+0

Nó được cho là có ý nghĩa ít cho các chỉnh sửa đồng thời của bất cứ điều gì trực quan cho dù đó là WinForms; XAML; .PNG; hoặc PSD. Một đề xuất được thực hiện bởi một nhóm game Unity được thành lập, người đã nói chuyện Unity, đã không đưa bất cứ điều gì vào cảnh qua nhà thiết kế chút nào, nhưng thay vào đó ** khởi tạo mọi thứ thông qua pre-fabs sử dụng mã khi chạy **. – MickyD

+0

@MickyDuncan: Vậy, trong trường hợp đó, thiết kế cấp độ là gì? Tạo một cấp độ từ, nói rằng, một tệp XML không trực quan như làm cho nó thông qua trình soạn thảo. –

Trả lời

2

Nói chung việc giữ các đối tượng nhị phân trong kho lưu trữ 'nguồn' là ý tưởng gây tranh cãi. Tuy nhiên gần đây một số công cụ chuyên ngành đã xuất hiện http://wiki.unity3d.com/index.php/UniMerge ... để chúng có thể được mua hoặc viết từ đầu.

+0

Vâng, hai đề xuất tốt cùng một lúc. Tôi ước tôi có thể chấp nhận cả hai câu trả lời. Nhưng câu trả lời của bạn là IMHO tốt hơn. Cảm ơn. –

+2

_ "Nói chung, việc giữ các đối tượng nhị phân trong kho lưu trữ 'nguồn' là ý tưởng gây tranh cãi" _ - điều đó được cho là quá rộng. Các tệp nhị phân được tạo ra trong _compilation_ - _yes_; mã nhị phân bắt buộc cho dự án là _built_ - _no_. ví dụ. Trong dự án web của tôi, chúng tôi thêm **. PNG ** s vào SCM vì chúng được yêu cầu để biên soạn; triển khai; và sử dụng bởi phần còn lại của nhóm. Tương tự, chúng ta thêm _audio_; _video_ và các phương tiện khác cho Unity. Điều khác biệt là bạn có hai bản repo khác nhau; một cho mã nguồn và một cho tài sản như được vạch ra bởi một trong các nhóm dev trong một video Unity Talk – MickyD

8

Bạn có thể lưu các tập tin cảnh trong chế độ văn bản: Edit->Project Settings->Editor->Asset Serialization: Force Text

Bằng cách này cảnh được lưu dưới dạng tập tin Yaml, để biết thêm chi tiết về định dạng, có một cái nhìn tại doc.

Mặc dù đôi khi tôi phối cảnh bằng tay, nó không phải là một hoạt động tầm thường, và bạn phải rất cẩn thận (git automerge không thể hợp nhất chúng trong 99% trường hợp).

+0

Vâng, hai đề xuất tốt cùng một lúc. Tôi ước tôi có thể chấp nhận cả hai câu trả lời. Cảm ơn. –

+1

Force Text chắc chắn sẽ giúp mọi thứ cùng. Unity cũng tùy ý sắp xếp lại các cảnh của bạn, do đó, một công cụ như Scene Merge hoặc sorter của anh chàng này cũng giúp tránh xung đột ngay từ đầu. Cảnh hợp nhất: https://www.assetstore.unity3d.com/en/#!/content/5412 máy phân loại: http://forums.playstaxel.com/threads/unity-and-git.228/ – scone

+0

@ scone - Vấn đề với _Scene Merge_ là nó tạo SCM trong SCM bằng cách buộc bạn thực hiện ảnh chụp không phải Git qua ** Tạo ảnh chụp nhanh ** bên trong Unity. Điều gì sẽ xảy ra nếu tôi quên làm như vậy? – MickyD