Unity3d QuickTip – czyli szybkie porady, rozwiązania częstych problemów i sztuczki w Unity3d!

Dzisiejszy odcinek: Unity Collaborate

Uwaga! Jest to poradnik typu QuickTip. Zatem skupia się on na osiągnięciu założonego celu. Zatem zakładamy że użytkownik zna na tyle program Unity3d, aby samodzielnie wykonać najprostsze czynności, jak np. dodanie modelu kostki do sceny czy dodanie modelowi jakiegoś komponentu. Jeżeli brakuje Ci tej podstawowej wiedzy, zapraszam do tutoriala:
Unity Tutorial – Podstawy

Teoria

Napisanie gry samemu to bardzo ciężka sprawa. Najczęściej nad jednym tytułem pracuje licząca kilka, kilkanaście, albo i kilkadziesiąt osób grupa. Największym problemem w takiej sytuacji jest wymiana danych. Zawsze ktoś odpowiada za pewien fragment gry. Łączenie całości za pomocą pendrive’a byłoby czynnością karkołomną, a dla pracujących na odległość niemożliwą. Dlatego już od dłuższego czasu programiści wszystkich branż stosują systemy kontroli wersji.

Najpopularniejsze obecnie systemy kontroli wersji to SVN oraz Git. Na temat Gita pojawił się już artykuł na blogu, napisany gościnnie przez Marcina Sroczyńskiego. Wiedza ta jest aktualna i do tego bardziej uniwersalna niż to o czym ja będę pisał, ponieważ Git ma zastosowanie dla programisty każdego języka.

Rozumiem, że część z was może nie wiedzieć czym jest system kontroli wersji dlatego już tłumaczę. Jest to pewna przestrzeń dyskowa w sieci, gdzie trzyma się kod źródłowy oprogramowania. Do tej przestrzeni mają dostęp wszyscy pracujący nad danym projektem. Każdy może przesłać zmiany do projektu i pobrać najnowszą wersję. Dodatkowo takie systemy często zawierają narzędzia do rozwiązywania konfliktów. Konflikt to taka sytuacja, gdzie dwie osoby zmodyfikowały w różny sposób jeden plik. Za pomocą takich narzędzi można bezboleśnie połączyć obie wersje pliku, bez konieczności usuwania czyjejś pracy. Oczywiście system sam sprawdza, które pliki zostały zmienione. Tym samym jeśli ktoś zmodyfikuje 3 pliki w projekcie mającym tych plików 500, to nie ma potrzeby pobierać całego projektu, tylko te 3 pliki, do tego nie musisz ich samodzielnie szukać, bo zrobi to za Ciebie system.

Po co komuś system kontroli wersji? Zalet jest kilka. Po pierwsze, w zespole wszyscy mają dostęp do aktualnej wersji repozytorium (czyli naszej bazy plików źródłowych). Ułatwia to bycie na bieżąco ze wszystkimi zmianami, co ułatwia rozwijanie i testowanie oprogramowania w zespole. Skraca też czas na komunikację. Wszystkie zmiany są widoczne w logach i nie trzeba każdego informować o zmianach.

Jeżeli pracujesz nad grą samodzielnie i myślisz, że nie ma tu nic dla Ciebie, to jesteś w błędzie. Taki system kontroli wersji pozwala Ci na dwie rzeczy. Z automatu dostajesz kopię zapasową swoich plików (jak dysk szlag trafi, to w repozytorium masz dalej w miarę aktualne dane – jak bardzo aktualne zależy od tego jak często je aktualizujesz). Mało tego, jeżeli masz dwa komputery – powiedzmy stacjonarkę i laptopa – to korzystając z systemu kontroli wersji możesz bezboleśnie przesiadać się między sprzętami.

Tyle teorii ogólnej, czas przedstawić Wam Unity Collaborate. Nie jest to konkurencja względem Gita czy SVNa, ale ukłon w stronę twórców pracujących w Unity. Collaborate jest to zintegrowany z edytorem system kontroli wersji. Wadą takiego rozwiązania jest ograniczenie się jedynie do Unity. Ogromną zaletą jest fakt, że nie wymaga instalacji dodatkowego oprogramowania, jest banalnie prosty w obsłudze i zapewnia wszystkie dobrodziejstwa Gita. W momencie kiedy piszę ten tekst, Collaborate jest w fazie Beta, więc może zawierać błędy, a co jakiś czas dochodzą nowe funkcję. Te najważniejsze już są, więc je opisze.

Jak zacząć działać z Unity Collaborate

Zaczynamy od utworzenia projektu. Tutaj nie będę pokazywał screena, bo zakładam że wszyscy tutaj zebrani są na tyle rozgarnięci, że z tym etapem sobie poradzą. Od razu po uruchomieniu projektu widzimy nową ikonkę:

Ikonka Unity Collaborate

Szary znaczek mówi, że Collaborate jest wyłączony. Teraz klikamy w ikonkę. Pojawi nam się nowe okienko, gdzie klikamy “Start now!”. Po chwili Collaborate jest aktywne, co sygnalizuje zmiana ikonki na niebieską.

Startujemy Unity Collaborate
Startujemy Unity Collaborate

W zasadzie tyle wystarczy, żeby uruchomić całość. Oczywiście do działania potrzebne jest konto Unity, ale jest ono potrzebne żeby w ogóle uruchomić silnik, więc w zasadzie nie potrzebujemy dodatkowych kroków.

Push i Pull

Dwie najistotniejsze funkcje w systemach kontroli wersji to Push i Pull. Pierwsza wysyła pliki z naszego lokalnego środowiska do repozytorium, a druga pobiera aktualne pliki z repozytorium. Zobaczmy jak to zrobić w Unity.

Panel Project pokazuje, które pliki zostały zmodyfikowane lokalnie

Zanim zaczniemy warto zwrócić uwagę na zmiany w panelu Projekt. Przy plikach, które są nowe dla naszego lokalnego środowiska, ale nie zostały jeszcze wysłane do repozytorium pojawia się niebieski kwadracik z plusem. Istnieje jeszcze druga ikonka – ołówek, oznacza że plik w repozytorium już jest, ale nasza wersja się różni. Również na liście folderów. Foldery w których zmodyfikowane pliki się znajdują, zostały oznaczone niebieskim kwadratem.

Żeby wysłać wszystkie nasze pliki do repozytorium, ponownie klikamy na ikonkę Collab w prawym górnym rogu.

Wysyłanie plików do repozytorium

Wystarczy podać jakąś treść komunikatu (najlepiej sugerującą co miała wprowadzić zmiana) i nacisnąć przycisk “Publish now!”. Możemy też publikować pojedyncze pliki, klikając na nie prawym klawiszem w menu Project i z menu kontekstowego wybierając Collaborate -> Publish.

Jeżeli poprawnie wyeksportowaliśmy dane, to ikonka Collaborate powinna przybrać kolor zielony. Oznacza to, że nasze pliki są w 100% zgodne z repozytorium.

Projekt jest zgodny z repozytorium

Mamy też inne możliwości względem naszych plików. Kiedy w okienku Collaborate najedziemy myszką na konkretny plik, pojawiają się nam dwie opcje:

Dodatkowe opcje Collaborate

Kiedy klikniemy na oczko, otworzy się nowe okno (zewnętrznego programu), gdzie możemy porównać różnice między naszym plikiem, a tym w repozytorium. Kartka ze strzałką, cofa zmiany w naszym lokalnym pliku, do wersji z repozytorium.

Na samym dole okienka są dodatkowe dwie ikonki. Ludziki pozwalają na zaproszenie dodatkowych członków zespołu do pracy przy projekcie. Sama ikonka średnio działa, bo jedynie otwiera zakładkę Services. Aby dodać nowego członka zespołu, należy w tym okienku kliknąć w listę rozwijaną (ta ukryta na samej górze) i wybrać opcję Members.

Całkowicie nieintuicyjne, ukryte menu.

Następnie w nowym panelu podajemy login potencjalnego współpracownika i klikamy Invite.

Zapraszamy nowego członka zespołu.

Druga ikonka (poziome linie) to historia naszych zmian. Po jej kliknięciu otworzy nam się nowa zakładka. Tą samą zakładkę możemy również wywołać z poziomu menu Window.

Hisotria Unity Collaborate

Widzimy tutaj najważniejsze informację. Kto zmienił, jakie pliki, kiedy zmienił, informację którą podał przy publikacji. Dodatkowo możemy przywrócić nasz projekt do jednej ze starszych wersji.

Jeszcze więcej możliwości

Jeżeli komuś jeszcze mało funkcjonalności, to dodatkowe rzeczy są już na koncie developera. Można tam wejść ze strony Unity, albo w oknie Services wybierając Collaborate, a następnie “Go To Web Dashborad”. Uruchomi się przeglądarka, a naszym oczom ukaże się taki panel.

Dashboard Unity Collaborate

Nie będę pokazywał każdej zakładki, ale szybko je omówię. Pierwsza to linia czasu, czyli znów kto co zmieniał i kiedy. W Assets mamy podgląd pod wszystkie pliki w repozytorium z możliwością ich pobrania oraz z historią zmian każdego pliku. Manage Storate… Nie wiem. U mnie wyświetla się biała strona. Support to linki do dokumentacji i formularza kontaktowego.

Jak to odpalić na drugim komputerze?

No dobra, stworzyliśmy repozytorium, wrzuciliśmy tam pliki, ale jak to odpalić na drugim komputerze? Sprawa jest dziecinnie prosta. W momencie uruchamiania Unity w oknie wybrania projektu pojawia się nowa zakładka “In The Cloud”. Wybieramy ją i naszym oczom ukazuje się lista wszystkich projektów w chmurze – czyli w repozytorium. Wystarczy taki projekt wybrać i już możemy pracować.

Wybór projektu z chmury, czyli repozytorium Unity Collaborate
Wybór projektu z chmury, czyli repozytorium Unity Collaborate

Podsumowanie

Unity Collaborate to bardzo fajna alternatywa dla Gita. Dużo prostszy w obsłudze, wbudowany w Unity, wspierający współpracę między ludźmi posiadającymi Unity ID. Genialne narzędzie, które przyda się zespołom, oraz pojedynczym twórcom.