Jedność - zrozumienie kolizji
Kolizje w Unity są oddzielone od samego Sprite, dołączane jako osobne komponenty i obliczane samodzielnie. Poznajmy teraz przyczynę tego.
Everythingw twojej grze jest GameObject. Nawet poszczególne kafelki tworzące twój poziom są same w sobie GameObjectami.
Kiedy traktujemy każdy komponent jako GameObject, zdajemy sobie sprawę, że może istnieć thousandsGameObjects w scenie, w jakiś sposób współdziałając ze sobą. Możesz sobie wyobrazić, że gdyby Unity dodało kolizje do każdego GameObject, obliczanie kolizji dla każdego z nich byłoby niepraktyczne dla silnika.
Pójdziemy dalej i dodamy prostą „ścianę”, z którą nasza postać gracza może się zderzyć. Aby to zrobić, utwórz kolejnego duszka i przeskaluj go w górę za pomocą narzędzia Rect. Nadamy mu również kolor czerwony poprzezColor właściwość w komponencie Sprite Renderer.
Teraz przejdź do Add Componentw Inspektorze i wpisz „Box Collider 2D”. Kliknij pierwszy komponent, który się pojawi, a powinien pojawić się nowy komponent.
Zobaczysz jasnozieloną linię na obwodzie GameObject. To jestcollision boundary. To definiuje rzeczywistośćshape zderzających się obiektów.
Powtórz to samo z naszym ruchomym GameObject.
Oczywiście kolizje w Unity nie ograniczają się do zwykłych pudełek. Mogą mieć różne kształty i rozmiary i niekoniecznie są replikami parametrów obiektu.
Mogą również przybierać kształty wielokątne.
Nierzadko zdarza się, że programiści i projektanci używają approximatekształty w granicach kolizji, aby uprościć ich zderzacze i uniknąć niepotrzebnych obliczeń dla silnika. Wkrótce nauczymy się tworzyć różne kształty i rozmiary za pomocą naszych zderzaczy.
Teraz, gdy mamy już ustalone granice kolizji, uruchom grę i zobacz, jak to działa.
Zauważysz, że nasz ruchomy przedmiot nie zachowuje się normalnie. Zachowanie obiektu omówimy w kolejnym rozdziale.