Unity Manual User Guide Unity Basics Publishing Builds

Publikacja

Kiedy stworzyliście już swoją pierwszą grę, chcielibyście ją opublikować, aby pochwalić się przed znajomymi, lub po prostu chcielibyście podejrzeć, jak ona działa oraz jak się prezentuje podczas uruchomiania poza edytorem Unity (np. jako aplikacja stand-alone, czy w web playerze).

Build‘em nazywamy skompilowaną i gotową do publikacji oraz użytkowania wersję gry powstałą ze scen, assetów oraz innych obiektów dodanych przez użytkownika do gry w fazie programowania. Kliknięcie przycisku File → Build Settings z menu głównego edytora Unity spowoduje wyświetlenie się okna Build Settings. Okno to jest edytowalną listą wszystkich zawartych w grze scen – możecie wybrać, które ze scen mają się ostatecznie znaleźć w buildzie.

publishing_20builds-0.jpg

Okno ustawień kompilatora

Kiedy uruchomicie okno Build Settings w projekcie po raz pierwszy, nie będą w nim zawarte żadne sceny. Kiedy zbuildujecie (na potrzeby tego tutoriala słowo biuld’owanie zastąpimy słowem budowanie) swoją grę podczas gdy lista scen w oknie Build Settings jest pusta, jedynie aktualna, otwarta w projekcie scena będzie w nim zawarta (scena domyślna, którą w Unity jest Island Scene). Jeśli więc chcesz szybko zbudować wersję testową gry z tylko jedną sceną, po prostu zbuduj ją bez żadnych dodanych scen w Build Settings.

Dodawanie scen do listy jest banalnie proste i może odbyć się na dwa różne sposoby: po pierwsze, może się odbyć po wciśnięciu przycisku „Add Current” w oknie Build Settings, co spowoduje dodanie do listy aktualnie otworzonej w projekcie sceny. Drugim sposobem jest przeciągnięcie i upuszczenie sceny na listę z widoku projektu (Project View).

W tym momencie możecie zauważyć, że każda dodana do listy scena ma przypisaną unikalną wartość indeksu. Scena o indeksie 0 jest pierwszą sceną, która będzie załadowana podczas uruchomienia gry. Nowe sceny nie są ładowane automatycznie. Aby wyświetlić konkretną scenę jako następną po scenie o indeksie 0, niezbędne jest umieszczenie kodu Application.LoadLevel() w skrypcie.

Kiedy dodaliście więcej niż jedną scenę do build’u, macie możliwość jej posortowania według własnych potrzeb. Możecie to uczynić poprzez klikanie i przeciąganie odpowiednich scen w górę lub w dół, aż do momentu uzyskania wymaganej kolejności.

Kiedy chcecie usunąć scenę z listy musicie kliknąć na wybraną scenę i wcisnąć kombinację klawiszy: CTRL+DELETE. Wówczas scena zostanie usunięta z listy i nie będzie uwzględniona w „produkcie” końcowym.

Kiedy dodaliście już wszystkie sceny do listy i posortowaliście je według własnego uznania jesteście gotowi do skompilowania gry – musicie wybrać platformę, na jakiej ma działać gra (Web Player, stand-alone na PC oraz MAC, na iPhone oraz iPad, na Android, na PS3 czy na XBOX 360). Upewnijcie się, że ikona Unity pojawiła się przy wybranej pozycji. Jeśli ikona ta nie widnieje przy pożądanej pozycji, możecie to zmienić klikając na przycisk „Switch Platform„. Po wybraniu platformy zostaniecie poproszeni o podanie nazwy gry oraz ścieżki, do której ma zostac ona zapisana. Klikacie na przycisk „Save” i voila! Zaletą Unity jest fakt, że budowanie gier odbywa się bardzo szybko.

Kiedy nie jesteście pewni gdzie zapisać grę, zróbcie to np. do folderu Projects. Nie zapisujcie go do folderu Assets, ponieważ grozi to uszkodzeniem build’u.

Aplikacje Przeglądarkowe - Web Player

Streaming Web Player

Streaming Web Player w porównaniu do Web Playera pozwala na korzystanie z gry od razu po pobraniu pierwszego poziomu gry (załadowania Sceny 0). Jeśli np. posiadasz grę z dziesięcioma poziomami, nie będzie większego sensu pobierania wszystkich assetów do poziomów 2-10 zanim nie zostanie włączony poziom 1 – dlatego, kiedy zbudujesz grę wykorzystującą Streaming Web Player wszystkie niezbędne assety będą pobierane w kolejności ich pojawiania się na kolejnych scenach. Zaraz po pobraniu wszystkich assetów ze Sceny 0, możecie już korzystać z gry – prościej rzecz ujmując, daje to użytkownikom możliwość jak najszybszego rozpoczęcia grania.

Jedyną rzeczą, o której powinniście pamiętać, to zapewnienie by ładowanie kolejnych poziomów odbywało się po skończeniu pobierania wszystkich wymaganych do tego poziomu assetów. W zwykłym Web Playerze (nie Streaming) odbywa się to poprzez dodanie do skryptów kodu uruchomiającego kolejny poziom: Application.LoadLevel(„levelName”);

W przypadku Streaming Web Player, musicie najpierw sprawdzić, czy assety wymagane do uruchomienia następnego poziomu zostały całkowicie pobrane. Odbywa się to dzięki wykorzystaniu funkcji CanStreamedLevelBeLoaded():


var levelToLoad = 1;

function LoadNewLevel () {

 if (Application.CanStreamedLevelBeLoaded (levelToLoad)) { 
      Application.LoadLevel (levelToLoad); 
 } 

}


Jeśli chcecie dodać do gry pasek ładowania kolejnych poziomów gry, będzie to możliwe po dodaniu do skryptu funkcji GetStreamProgressForLevel().

Umieszczenie Offline WebPlayer

Jeśli opcja Offline Deployment jest włączona dla WebPlayer to plik UnityObject.js (używany do interfejsu gracza po stronie hosta) zostanie umieszczony obok gracza w trakcie budowy. Dzięki temu gracz, lokalnym plikiem skryptu, nawet gdy nie ma połączenia z siecią, normalnie UnityObject.js jest pobierany z serwera Unity, tak aby korzystać z najnowszej wersji.

Aplikacje desktopowe

Budowa samodzielnych graczy

Dzięki Unity macie możliwość budowanie aplikacji stand-alone na Windows i Mac’a. Nie kryje się za tym skomplikowana technika – całość sprowadza się to do zaznaczenia z listy dostępnych platform odpowiedniej opcji i kliknięcia przycisku „Build„. Podczas budowania gry w wersji stand-alone tworzone są paczki zawierające wymagane pliki – w wersji na system Windows stworzony zostanie plik wykonywalny *.exe wraz z niezbędnymi plikami, które trafiają do katalogu Data. W wersji na Mac’a tworzona jest paczka (bundle) zawierająca plik niezbędny do uruchomienia gry oraz inne pliki zawierające niezbędne dane.

Utworzone podczas procesu budowania pliki mogą być od teraz być używane przez graczy – aby odpalić aplikację na Mac’u niezbędne będzie przesłanie tylko utworzonej paczki (która zawiera wszystkie niezbędne pliki). W przypadku aplikacji na Windows – aby móc otworzyć grę niezbędnym będzie wykorzystanie zarówno pliku wykonywalnego, jak i plików zawartych w folderze Data (niemożliwe jest odpalenie pliku exe bez niezbędnych plików zawartych w tym folderze).

Wewnątrz procesu budowania

Proces budowy zapisze naszą grę w miejscu, które wskażemy. Zobaczy listę scen w ustawieniach budowy, otworzy je w jednym edytorze w czasie ich optymalizacji, i włączy je do pakietu aplikacji. Również obliczy wszystkie assety, które są wymagane przez zawarte sceny i przechowywania danych w osobnym pliku w pakiecie aplikacji.

  • Wszelkie GameObject'y w scenie, które są oznaczone tagiem „EditorOnly” nie będą zawarte w opublikowanych buildach. Jest to przydatne do debugowania skryptów, które nie muszą być uwzględnione w ostatecznej wersji gry.
  • Po załadowaniu nowego poziomu, wszystkie obiekty na poprzednim poziomie są niszczone. Aby temu zapobiec, należy użyć DontDestroyOnLoad () na wszystkie obiekty których nie chcesz zniszczyć. Najczęściej jest wykorzystywane do prowadzenia odtwarzania muzyki podczas ładowania poziomu lub skryptów kontrolera gier, które utrzymują stan gry i postępu.
  • Po załadunku nowego poziomu jest gotowy, komunikat: OnLevelWasLoaded () zostanie wysłany do wszystkich aktywnych obiektów gry.

Więcej informacji na temat jak najlepiej stworzyć grę z wielu scen, na przykład w menu głównym, high-score ekranu i rzeczywiste poziomy gry, zobacz Scripting Tutorial.pdf.

Aplikacje mobilne

Wewnątrz procesu budowania iOS

Proces budowy dla aplikacji IPhone/iPad jest procesem dwuetapowym:

  1. projekt XCode jest generowany wraz z niezbędnymi bibliotekami, prekompilowanym kodem .NET i serializowanymi assetami
  2. projekt XCode jest budowany i instalowany na urządzeniu mobilnym

Kiedy wciśniemy „Build” w „Build settings” zostanie wykonany tylko pierwszy krok. Wciśnięcie „Build and Run” wykonuje wszystkie czynności. Jeśli w projekcie okna zapisu użytkownik wybierze już istniejący folder zostanie wyświetlony alert. Obecnie istnieją dwa tryby generacji XCode projektu do wyboru:

  • replace - wszystkie pliki z folderu docelowego są usuwane i zastąpione nowymi
  • append - foldery Data, Libraries oraz folder project root zostaną wyczyszczone i uzupełnione nowopowstałymi plikami. Project XCode jest aktualizowany zgodnie ze zmianami wprowadzonymi w ostatniej wersji projektu. Tryb append może zostać użyty tylko dla istniejących projektów (utworzonych tą samą wersją Unity iOS), które chcemy aktualizować.

Wciśnięciu klawiszy CTRL+B (Windows) lub Command+B (Mac) włączy automatyczne budowanie projektu według ostatniej wersji projektu (w tym przypadku tryb append jest trybem domyślnym) i ostatnio używany folder jest użyty jako docelowy budowy.

Android

Budowanie gry na Android, podobnie do gier na iPhone, odbywa się w dwóch krokach:

  1. generowana jest paczka z aplikacją zawierająca wszystkie wymagane biblioteki i serializowane assety
  2. paczka z aplikacją instalowana jest na urządzeniu mobilnym

Kiedy wciśniecie przycisk Build znajdujący się w oknie Build settings, tylko pierwszy krok zostanie wykonany. Dopiero wciśnięcie przycisku Build and Run sprawi, że zostaną wykonane oba kroki na raz. Wciśnięcie klawiszy CTRL+B (Windows) lub Command+B (Mac) włączy automatyczne budowanie projektu według ostatniej wersji projektu.

Podczas tworzenia pierwszego projektu na Android, zostaniecie poproszeni o podanie Android SDK (Software Development Kit – zestaw narzędzi dla programistów niezbędny w tworzeniu aplikacji korzystających z danej biblioteki), które jest wymagane w celu zbudowania gry oraz jej instalacji na urządzeniu. Właściwość ta może być edytowana w preferencjach (Unity Preferences).

publishing_20builds-4.jpg

Kiedy budujecie aplikację na Android, upewnijcie sie, że w ustawieniach urządzenia zaznaczone są opcje „USB Debugging” oraz „Allow mock locations„.

publishing_20builds-5.jpg

Aby być pewnym, że system operacyjny „widzi” wasze urządzenie możecie uruchomić komendę adb devices w folderze Android SDK/platform-tools. Takie rozwiązanie będzie działać zarówno na Windowsie jak i Mac’u.

publishing_20builds-6.jpg

Po wykonaniu powyższych kroków otrzymacie paczkę z rozszerzeniem *.apk, zainstalowaną na podłączonym urządzeniu. W niektóych przypadkach apliakcja nie zostanie uruchomiona automatycznie dopóki nie odblokujecie ekranu urządzenia – wtedy będziecie musieli znaleźć zainstalowaną aplikację w menu urządzenia.

Kompresja tekstur

W Build Settings można także znaleźć opcję Texture Compression (Kompresja tekstur). Domyślnie, Unity używa formatu tekstur ETC1/RGBA16, który nie posiada indywidualnych zastępujących formatów tekstur (patrz Texture 2D/Per-Platform Overrides).

Jeśli chcesz zbudować archiwum aplikacji (pliku *.apk) ukierunkowane na konkretną architekturę sprzętową, można korzystać z Texture Compression by wyłączyć to domyślne ustawienie. Wszelkie tekstury, który używa przesyłanie formatu tekstur będą takie sam, tylko tekstury ustawione na Automatic Compressed będzie używać formatu wybranego w opcjach Texture Compression.

Wgrywanie (Preloading)

Publikacja odbywa się automatycznie wczytując wszystkie assety w scenie podczas ładowania sceny. Wyjątkiem od tej reguły jest scena o indeksie 0. To dlatego, że pierwsza scena jest zwykle ekranem powitalnym, który chcesz wyświetlić tak szybko jak to możliwe.

Aby upewnić się, że wszystkie materiały są wczytane, można utworzyć pustą scenę, która zwraca Application.LoadLevel(1). W Build settings uczynić tą pustą scenę o indeksie 0. Wszystkie kolejne poziomy będą wczytane.

Jesteś gotowy do tworzenia gier

Teraz nauczyliście się, jak używać interfejsu Unity, jak korzystać z asset'ów, jak tworzyć sceny, i jak opublikować własną grę. Nie ma nic co powstrzymuje Cię od tworzenia gry swoich marzeń. Będziesz z pewnością dowiadywać się znacznie więcej po drodze, a my jesteśmy tu by pomóc.

Do interakcji ze społecznością użytkowników i programistów Unity, odwiedź oficjalne Forum Unity lub forum polskiej społeczności Unity. Możesz zadawać pytania, prezentować własne projekty, kompletować zespół, podzielić się tym co chcesz zrobić, itp. Zachęcamy do prezentacji własnych projektów aby każdy mógł zobaczyć jakie to fantastyczne gry potraficie stworzyć.


Poprzedni Następny

unity_manual/publishing_builds.txt · ostatnio zmienione: 2012/09/30 11:39 (edycja zewnętrzna)
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki