Parametry postaci

Z serii naszego poradnika pokazujemy jak napisać skrypt określający w Unity3D parametry postaci. Zobacz jak napisać i podpiąć skrypt do postaci.

Każda gra musi posiadać pewien cel, którego osiągnięcie kończy rozgrywkę zwycięstwem, lub porażką w przypadku, gdy nie uda nam się spełnić wymagań. Droga gracza ku celowi okraszona zwykle jest wieloma liczbami, warunkami, które wpływają na to czy ten cel uda się osiągnąć, czy też nie. W przypadku wielu gatunków gier, a nasz poradnik nie będzie wyjątkiem, liczby te są między innymi statystykami kierowanej postaci – jego zdrowiem, energią, punktami doświadczenia. W tej części pokażę w jaki sposób można napisać skrypt kontrolujący takie podstawowe informacje o bohaterze, oraz sposób na wyświetlenie ich stanu na ekran.

 

Piszemy skrypt.

Na sam początek stwórzmy sobie folder w eksplorerze, w którym umieszczać będziemy tworzone przez nas skrypty. Wystarczy kliknąć PPM na okienko eksplorera, wybrać create -> folder. Najlepiej umieścić ten nowy katalog w folderze Standard Assets, aby łatwo zapamiętać jego położenie.

 

Jak zdefiniuwać w Unity3D parametry postaci za pomocą skryptu C#.

 

Następnie wewnątrz nowego folderu tworzymy nowy skrypt. Podobnie jak poprzednio, z listy wybieramy jednak C# Script. Nazwałem go HeroData, aby ułatwić sobie późniejsze rozeznanie w skryptach.

 

Jak zdefiniuwać w Unity3D parametry postaci za pomocą skryptu C#.

 

Plik możemy otworzyć „dwuklikiem”, przez co uruchomi się wbudowane w Unity środowisko MonoDevelop. Można również ręcznie odszukać skrypt na dysku i edytować go dowolnie wybranym programem. Jest to kwestia indywidualna.

 

Spójrzmy jak mógłby wyglądać przykładowy skrypt oraz przeanalizujmy sobie go linia po linii.

 

Jak zdefiniuwać w Unity3D parametry postaci za pomocą skryptu C#.

 

[6-9] – znajdują się tutaj deklaracje podstawowych zmiennych, na których będziemy operować. Są to zdrowie, energia, głód oraz status postaci (żywy/martwy).

[11-16] – metoda Start. Tutaj deklarujemy co stanie się jednorazowo, zaraz po uruchomieniu gry. Wszystkie wartości zostaną ustawione na 100, gdyż taki zakres (0-100) wydaje się być najbardziej uniwersalny, oraz ustawiamy status postaci na żywy.

[18-25] – metoda Update. Tutaj deklarujemy co będzie się działo co każdą klatkę, a są to:

[19] – obniżenie poziomu zmiennej odpowiadającej za głód, powoduje to, że pasek sytości będzie się cały czas obniżać, więc należy mieć go na uwadze i w jakiś sposób uzupełniać.

[20-23] – określenie co stanie się gdy wskaźnik głodu sięgnie poziomu mniejszego niż zero. W tym przypadku należy ustawić go  na zero, aby uniknąć sytuacji, w której osiągnie on wartość ujemną, poza przyjętym zakresem. Następnie obniżamy poziom zdrowia postaci, gdyż jak powszechnie wiadomo z głodu można umrzeć.

[24] – w tej linii z kolei decydujemy co stanie się gdy wskaźnik zdrowia spadnie poniżej zera. Ustawiamy wstedy status postaci jako martwy, co skończy grę. Trzeba będzie oczywiście napisać skrypt, który to obsłuży.

[27-64] – w tym, względnie dużym fragmencie kodu znajdują się metody, które odpowiadają za zwiększanie/zmniejszanie wartości zmiennych opisujących zdrowie, głód oraz energię,a także metody pozwalające na ustawienie odpowiedniego statusu postaci. Będą przydatne w innych skryptach, które napiszemy – na przykład sterowaniu postacią.

 

 

Podpinanie skryptu pod postać.

Aby przypisać postaci skrypt wystarczy zaznaczyć interesujący nas model i przeciągnąć skrypt na pasek inspektora. Jeżeli skrypt został poprawnie napisany powinniśmy ujrzeć następujący widok.

 

Jak zdefiniuwać w Unity3D parametry postaci za pomocą skryptu C#.

 

W tym momencie wyjaśniona zostaje pewna kwestia, mianowicie określenie pól health, stamina, hunger w skrypcie HeroData jako publiunity3d parametry postacic. Powoduje to, że mamy dostęp do wartości tych pól bezpośrednio z inspektora jak na zrzucie ekranu powyżej. Możemy dowolnie te wartości modyfikować sprawdzając jaki mają wpływ na rozgrywkę.

Przejdź do poradnika Unity3D:

Unity3D – poradnik krok po kroku.

Podziel się wiedzą z innymi

Komentarz do postu