2015-04-06 20 views
5

Próbuję zaimplementować Gita do mojego projektu gry. W przypadku skryptów działałoby dobrze, ponieważ są już w tekście. A co z plikami scen? Są to pliki binarne, więc ich scalenie będzie dość trudne. Co się stanie, jeśli umieszczę obiekt gry na scenie, a inny współpracownik umieści inny obiekt w tej samej scenie? Jak połączymy nasze sceny? Czy powinniśmy zawsze eksportować/importować ręcznie?Scalanie sceny Unity 3D z Git

Z góry dziękuję.

+1

Należy połączyć je ręcznie i po prostu "dodać" najnowszą wersję pliku. Lepszym przepływem pracy byłoby, aby jedna osoba w danym momencie zmieniła określoną scenę. – folkol

+0

Prawdopodobnie nie ma sensu zbiegające się edycje wszystkiego, co wizualne, czy to WinForm; XAML; .PNG; lub PSD. Jedna z sugestii ze strony ustalonego zespołu gry Unity, który wygłosił przemówienie Unity, polegała na tym, by nie umieszczać niczego na scenie za pośrednictwem projektanta, ale raczej ** tworzyć wszystko za pomocą pre-fabs, używając kodu w czasie wykonywania **. – MickyD

+0

@MickyDuncan: A więc w takim razie, co z projektem poziomu? Tworzenie poziomu z, na przykład, pliku XML nie jest tak intuicyjne jak zrobienie go za pomocą edytora. –

Odpowiedz

2

Ogólnie rzecz biorąc, przechowywanie obiektów binarnych w repozytorium "źródłowym" jest kontrowersyjnym pomysłem. Jednak ostatnio niektóre specjalistyczne narzędzia pojawiły się http://wiki.unity3d.com/index.php/UniMerge ... więc można je kupić lub napisać od podstaw.

+0

Cóż, dwie dobre sugestie w tym samym czasie. Chciałbym móc przyjąć obie odpowiedzi. Ale twoja odpowiedź jest lepsza IMHO. Dzięki. –

+2

_ "Generalnie przechowywanie obiektów binarnych w repozytorium" źródłowym "jest kontrowersyjnym pomysłem" _ - to chyba zbyt szeroki zakres. Pliki binarne wyprodukowane podczas _compilation_ - _yes_; pliki binarne wymagane do projektu _built_ - _no_. na przykład W moim projekcie sieciowym dodajemy **. PNG ** s do SCM, ponieważ są one wymagane do kompilacji; rozlokowanie; i wykorzystanie przez resztę zespołu. Podobnie dodajemy _audio_; _video_ i inne media dla Unity. Różnica polega na tym, że masz dwa różne repozyty; jeden dla kodu źródłowego i jeden dla zasobów, jak nakreślono przez jeden z zespołów programistów podczas filmu Unity Talk – MickyD

8

można zapisywać pliki scen w trybie tekstowym: Edit->Project Settings->Editor->Asset Serialization: Force Text

ten sposób sceny są zapisywane jako Yaml pliku, aby uzyskać więcej informacji na temat formatu, spojrzeć na doc.

Mimo że czasami scalam scenę ręcznie, nie jest to trywialna operacja i musisz być bardzo ostrożny (git automerge nie jest w stanie scalić ich prawidłowo w 99% przypadków).

+0

Cóż, dwie dobre sugestie w tym samym czasie. Chciałbym móc przyjąć obie odpowiedzi. Dzięki. –

+1

Wymuszenie tekstu zdecydowanie pomaga. Jedność dowolnie zmienia kolejność scen, więc narzędzie takie jak Scene Merge lub sorter tego faceta również pomaga uniknąć konfliktów. Scene Merge: https://www.assetstore.unity3d.com/en/#!/content/5412 sorter: http://forums.playstaxel.com/threads/unity-and-git.228/ – scone

+0

@ scone - Problem z _Scene Merge_ polega na tym, że tworzy SCM w SCM, zmuszając cię do wykonania migawki non-Git za pośrednictwem ** Create Snapshot ** inside Unity. Co się stanie, jeśli zapomnę to zrobić? – MickyD