Unity Manual User Guide Building Scenes Prefabs

Prefab-y

Prefab jest rodzajem asset-u - wielokrotnego użycia GameObject-u przechowywanego w widoku projektu. Prefab-y można wstawiać na dowolną liczbę scen i po kilka razy na scenie. Po dodaniu prefab-u do scenie, należy ustawić jego instance (instancję). Wszystkie instancje Prefab-u związane są z pierwotnym Prefab-em i są zasadniczo klonami niego. Nie ważne ile instancji istnieje w projekcie, po wprowadzeniu zmian do Prefab-u widać że zmiany zostają wprowadzone automatycznie do wszystkich instancji.

Tworzenie Prefab-ów

Aby stworzyć Prefab musisz stworzyć nowy pusty Prefab używając listy rozwijalnej w widoku Projekt Create→Prefab lub wybrać z manu górnego Assets→Create→Prefab, to pusty prefab nie zawiera żadnego GameObiektu i nie można utworzyć jego instancji. Pomyśl o nowym Prefa-bie jako pustym pojemniku czekającym na wypełnienie go GameObiektami. Ikonka pustego Prefa-bu jest szara, po wypełnieniu go GameObiektem zmieni kolor na niebieski.

prefabs-0.jpg

Nowy pusty Prefab. Nie może być instancją aż nie wypełni go GameObject.

Aby wypełnić pusty Prefab należy przeciągnąć GameObiekt znajdujący się na scenie do pustego Prefab-u aby przekształcić go w Prefab, wówczas jego nazwa zmieni kolor na niebieski żeby pokazać że jest to Prefab i oryginalny GameObiekt z widoku Hierarchy stał się instancją Prefab-u. Można również wypełnić pusty Prefab GameObiektem z widoku Projektu i ustawić jego instancje na scenie.

Instancje Prefab-ów

Aby utworzyć instancje Prefab-u w bieżącej scenie przeciągnij Prefab z widoku Projektu na scenę lub widok Hierarchy. Instancja jest powiązana Prefab-em, jak pokazano po przez niebieski tekst używany do ich nazwy w widoku Hierarchy.

prefabs-1.jpg

Trzy z nich są związane z GameObiektami Prefab-ów. Jeden z nich nie jest.

  • Jeśli wybrałeś instancje Prefab-u i chciał byś aby zmiany wpływały na wszystkie instancje można kliknąć przycisk Select w Inspektorze aby wybrać Prefab źródłowy.
  • Informacje o uruchomianiu Prefab-ów za pomoca skryptów znajdziesz tutaj:Uruchamianie Prafab-ów.

Dziedziczenie

Dziedziczenie oznacza, że w każdym zmiany w Prefab-ie źródłowym zostają zastosowane we wszystkich połączonych GameObiektach. Np, gdy chcemy dodać nowy skrypt do Prefab-ów wszystkie powiązane GameObiekty natychmiast będą zawierać także ten skrypt. Jednakże możliwe jest zmienienie włąściwości pojedynczej powiązanej instancji aby utrzymać resztę powiązań nienaruszoną. Wystarczy zmienić dowolną właściwość instancji Prefab-u i patrzeć jak zmienna staje się pogrubiona. Zmienna jest teraz zmieniona. Wszystkie nadpisane właściwości nie będą mieć w pływu na zmiany w Prefab-ie źródłowym.

To pozwala modfikowac instancje Prefab-ów aby były unikatowe i ich Prefab źródłowy nie utracił połączenia.

prefabs-2.jpg

Połączony GameObiekt bez nadpisywania.

prefabs-3.jpg

Połączony GameObiekt z kilkoma pogróbionymi zmiennymi.

  • Jeśli chcesz zaktualizować Prefab źródłowy wystarczy wstępnie z nowymi nadpisanymi właściwościami mozna kliknąć przycisk Apply w Inspektorze.
  • Jeśli chcesz usunąć wszystkie nadpisania danej instancji można kliknąć przycisk Revert.

Importowanie Prefab-ów

Po umieszczeniu siatek w folderze Assets, Unity automatycznie importuje pliki i generuje coś co wygląda podobnie do Prefab-u. To nie jest właściwie Prefab, jest to po prostu sam składnik. W pracy z aktywami wprowadzono pewne ograniczenia, które nie są obecne podczas pracy z normalnymi Prefab-ami.

prefabs-4.jpg

Wskazówka: ikonka assetu jest nieco inna od ikonki Prefab-u

Atutem jest tworzony na scenie GameObiekt połączony z asset-em źródłowym zamiast normalnego Prefab-u. Składniki mogą bys dodawane i usuwane tak jak normalne GameObiekty, jednakże nie można stosować żadnych zmian w składnikach asset-u. Jeśli tworzysz coś co chcesz używać należy dodać asset do Prefab-u, czynności te opisano powyżej w punkcie „Tworzenie Prefab-ów”.

Po wybraniu instancji składnika asset-u przycisk Apply w Inspektorze zastąpiony jest przyciskiem Edit. Kliknięcie tego przycisku spowoduje aplikacji do edycji asset-u(np. Maya lub 3ds Max).


Następny Poprzedni

unity_manual/prefabs.txt · ostatnio zmienione: 2012/11/11 00:45 przez valaantha
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki