czwartek, 3 marca 2016

Własne funkcje

Funkcje są fragmentem kodu który uruchamia się po jego wywołaniu. Unity posiada kilka rodzai funkcji, które są wywoływane automatycznie w określonych sytuacjach. W poprzednim poście popełniłem mały błąd przy wyjaśnianiu funkcji Start i Awake (który już poprawiłem), ale sprostuję to jeszcze w tym wpisie:
void Awake () - funkcja która uruchamia się podczas przypisania skryptu do obiektu i aktywuje się nawet wtedy, gdy skrypt nie jest aktywny.
void Start () - funkcja która uruchamia się po starcie skryptu, czyli tylko wtedy, gdy skrypt jest aktywny.
Ogólnie funkcja Awake wykonuje się przed funkcją Start. Do tego jedną z ważniejszych funkcji jest funkcja Update:
void Update () - aktywuje się co klatkę gry.

Słowo „void” określa typ funkcji i oznacza funkcję, która nie zwraca żadnych wartości. Po słowie void występuje nazwa funkcji, a potem występuje nawias, za pomocą którego można przekazywać parametry funkcji. Prócz wbudowanych typów funkcji możemy także tworzyć swoje własne funkcje według tego samego schematu, ale funkcje te będziemy musieli sami wywołać za pomocą kodu. Aby wywołać własną funkcję należy napisać jej nazwę, oraz nawias wraz z parametrami (jeśli jakieś są), tak jak na przykładzie:

Dlaczego warto tworzyć własne funkcje?



1. Pozwala to uporządkować nasz kod. Jeśli nasz skrypt wykonuje kilka różnych czynności (np. wczytywanie ustawień gry, generowanie planszy, oraz wczytywanie własności żetonów), to każdą z tych czynności możemy wykonywać w osobnej funkcji, dzięki czemu wszystko znajduje się na swoim miejscu. Tego typu porządek zaczyna się doceniać, gdy skrypt zaczyna mieć kilka tysięcy linijek kodu.

2. 
Tworzone funkcje możemy zwinąć do jednej linijki:

Dzięki takiemu zabiegowi możemy schować fragmenty kodu nad którymi chwilowo nie pracujemy.

3. Jeśli jakiś fragment kodu powtarza się wielokrotnie, możemy go umieścić w jakiejś funkcji, a następnie wywoływać się do niego z różnych miejsc kodu:

W ten sposób możemy przyspieszyć pisanie skryptu i zmniejszyć jego rozmiar (bo pojedynczą linijką kodu będziemy mogli wywołać kod zajmujący znacznie więcej linijek). Prócz tego ułatwia to wprowadzanie poprawek w kodzie – wprowadzenie poprawki w wielokrotnie używanej funkcji jest znacznie szybsze, niż wprowadzanie tej samej poprawki wszędzie tam, gdzie wywoływana ma być funkcja.

4. Umożliwia dostęp do określonego fragmentu kodu znajdującego się w funkcji, oraz ułatwia komunikację między skryptami:

5. Umożliwia rekurencję, czyli wywoływanie funkcji przez samą siebie.

Brak komentarzy:

Prześlij komentarz