Mesh 101 Tutorial Chapter 4: Move objects and trigger animations with Mesh Interactables and Physics
W tym rozdziale będziesz pracować z modelem farmy wiatrowej. Dowiesz się, jak używać narzędzi Mesh Interactables i Fizyki do chwytania i wydawania sztywnych ciał (w tym przypadku turbin wiatrowych) i konfigurowania wyzwalacza animacji przy użyciu skryptów wizualnych. Podsuniesz rzeczy, ograniczając turbiny wiatrowe, aby można je było przenosić tylko w określonym obszarze.
Ten rozdział jest nieco bardziej prosty niż to, co zrobiłeś w rozdziale 3---there's no scripting, a sieć jest skonfigurowana tak, aby fizyka wyglądała tak samo jak wszystkie awatary w sesji.
Istnieje kilka rzeczy, które musimy zrobić przed rozpoczęciem z pierwszą stacją.
Ponowne konfigurowanie hierarchii
- W hierarchii zwiń element GameObject Rozdział3 , a następnie rozwiń obiekt GameObject Rozdział4 .
Zmień widok, aby wyświetlić taras z rozdziałem 4
W doświadczeniu w usłudze Mesh uczestnik przejdzie płynnie od końca rozdziału 3 na początek rozdziału 4 i będzie prawidłowo zlokalizowany, aby rozpocząć działania szkoleniowe rozdziału 4. Jednak po wyjściu z trybu odtwarzania na końcu rozdziału 3 nie zostało automatycznie umieszczone w widoku do modelu Rozdział 4 w oknie Scena . Skonfigurujmy ten widok.
W hierarchii wybierz obiekt GameObject o nazwie 4.1 - Grab i Release.
Przesuń kursor nad oknem Scena , a następnie naciśnij klawisz F na klawiaturze.
Spowoduje to wyśrodkować widok na obiekt 4.1 — Grab i Release , ale najprawdopodobniej nie będzie w dość potrzebnej sytuacji.
Przeciągnij, obróć i/lub powiększ widok, aż zobaczysz stacje Rozdział 4 przed tobą, jak pokazano poniżej.
Stacja 4.1: Grab i Release
Celem uczestnika w tym rozdziale szkolenia jest przeniesienie turbin wiatrowych z tabletu do oceanu. Po zlokalizowaniu tam turbiny złapią wiatr oceaniczny, co sprawia, że ich ostrza obracają się i generują moc.
W hierarchii rozwiń węzeł 4.1 — Grab i Release GameObject. Należy pamiętać, że zawiera trzy obiekty GameObject turbiny wiatrowej znajdujące się na tablecie w scenie.
Dodajmy możliwości "grab and release" do WindTurbine1 , aby uczestnicy mogli poruszać się po nim w mesh.
W hierarchii wybierz pozycję WindTurbine1.
W inspektorze kliknij przycisk Dodaj składnik , a następnie wyszukaj i dodaj konfigurację z możliwością interakcji z usługą Mesh.
Porada
Wyjaśnienie tego składnika zostało podane w rozdziale 3 tego samouczka.
W tym samym składniku kliknij listę rozwijaną Typ obiektu , a następnie wybierz pozycję Manipulable.
Upewnij się, że składnik jest aktywny.
W składniku Sztywna osoba rozwiń w razie potrzeby opcję Ograniczenia, a następnie w obszarze Ustawienia blokowania rotacji wybierz pozycję X,Y i Z.
Zapobiegnie to przechyleniu turbiny, jeśli umieścisz ją na nierównej powierzchni.
Testowanie pracy
Zapisz projekt, a następnie wybierz przycisk Odtwórz edytor aparatu Unity.
Należy pamiętać, że za każdym razem, gdy wchodzisz w tryb odtwarzania, punkt wyjścia w oknie Gry to Taras rozdziału 3 Sphere. W tym rozdziale chcemy być na drugim tarasie sfer--- jednym z cech rozdziału 4. Na szczęście jest łatwy sposób, aby się tam dostać.
Obróć widok po prawej stronie, dopóki nie zostanie wyświetlone pole informacyjne Przejdź do rozdziału 4 .
Przejdź do pola informacji, a następnie wybierz przycisk Teleportuj do rozdziału 4 .
Po przybyciu do Rozdziału 4 Sphere Terrace przenieś kursor nad WindTurbine1- jego kształt zmieni się- a następnie przeciągnij turbinę wokół sceny.
Turbina pozostanie w pozycji pionowej w wyniku włączenia ograniczeń obrotu zamrożenia .
Kliknij przycisk Odtwarzania edytora aparatu Unity, aby zamknąć tryb odtwarzania.
Nie musisz aktualizować dwóch pozostałych turbin wiatrowych — zrobiliśmy to już dla Ciebie.
Stacja: wyzwalacz animacji 4.2
Chodzi o to, że gdy przeciągasz turbinę wiatrową nad oceanem, "wiatr" powoduje wirowanie łopat turbiny. W rzeczywistości dzieje się tak, że przezroczysty moduł o nazwie Wyzwalacz animacji znajduje się nad oceanem i działa jako wolumin wyzwalacza. Jeśli przeciągniesz turbinę wiatrową do woluminu wyzwalacza, zostanie uruchomione zdarzenie On Trigger Enter , które uruchamia animację wirującego bloku.
W tym rozdziale dodamy skrypt do obiektu GameObject, a następnie włączymy animację w skrycie.
W hierarchii rozwiń obiekt GameObject wyzwalacza animacji 4.2, a następnie wybierz jego obiekt podrzędny o nazwie Wyzwalacz animacji.
Zwróć uwagę, że można zobaczyć zielone kontury wyzwalacza animacji GameObject's Box Collider.
W inspektorze przejdź do składnika Box Collider , a następnie wybierz pozycję Wyzwalacz.
Porada
Po wybraniu pozycji Wyzwalacz powoduje, że obiekt, który jest dołączany do woluminu wyzwalacza.
- W hierarchii przejdź do rozdziału 4 4.1>— Pobierz i zwolnij , a następnie wybierz pozycję WindTurbine1.
- Kliknij przycisk Dodaj składnik , a następnie wyszukaj i dodaj maszynę skryptu.
Chcemy, aby nasz skrypt został osadzony, ale zwykle oznacza to, że musisz zacząć tworzyć nowy graf skryptu od podstaw. Zrobimy skrót; pozostaw opcję Źródło ustawioną na wykres na razie. Dołączymy istniejący graf skryptu, a następnie przekonwertujemy go na osadzony graf.
Kliknij przycisk w polu Graph , a następnie w oknie SelectSceneGraph wybierz pozycję SPWindTurbineScript.
Kliknij przycisk Konwertuj . Należy pamiętać, że spowoduje to usunięcie ustawienia grafu i zmianę opcji Źródło na osadź.
Dodawanie animacji wirującego bloku do grafu
Poświęć chwilę na sprawdzenie wykresu skryptu. Ma dwie grupy: górna grupa wyzwala animację wirowania bloku, gdy użytkownik przeciąga turbinę wiatrową do głośności wyzwalacza, a dolna grupa zatrzymuje animację, gdy użytkownik przeciąga turbinę z woluminu.
Wykres jest prawie skonfigurowany tak, jak chcemy, ale istnieje jeden z pozostałych problemów. Dwa węzły Animator: Ustaw wyzwalacz są ustawione na Wartość Ta ...
... ale to (innymi słowy , WindTurbine1) nie ma animacji, którą chcemy wyzwolić. Znajdźmy to.
W hierarchii rozwiń węzeł WindTurbine1 , a następnie rozwiń jego obiekt podrzędny o nazwie WindTurbineBody. Spowoduje to ujawnienie obiektu podrzędnego o nazwie Windmill_Turbine_001:Śmigły10.
Wybierz pozycję Windmill_Turbine_001:Śmigły10, a następnie w inspektorze zwróć uwagę, że zawiera składnik Animatoro nazwieWindTurbine1Propellers.
To jest to, co zapewni naszą animację.
Przeciągnij obiekt Windmill_Turbine_001:Śmigły10 GameObject z hierarchii , a następnie w grafie skryptu upuść go w pierwszym polu w węźle Animator: Ustaw wyzwalacz znajdujący się w pierwszej grupie.
Przeciągnij obiekt Windmill_Turbine_001:Śmigły10 GameObject z hierarchii ponownie, a następnie w grafie skryptu upuść go w pierwszym polu w węźle Animator: Ustaw wyzwalacz znajdujący się w drugiej grupie.
Skrypt został ukończony.
Testowanie pracy
Zapisz projekt, a następnie naciśnij przycisk Odtwarzania edytora aparatu Unity.
Jak wspomniano wcześniej, wejście w tryb odtwarzania umieszcza awatara na tarasie Rozdział3 Sphere. Obróć scenę po prawej stronie, a następnie przejdź do przycisku Teleport do rozdziału 4 i naciśnij go.
Powinien być teraz na tarasie Sphere Chapter4 . Przeciągnij WindTurbine1 (przypomnienie: jest to najdalej jeden z tyłu, z czerwonymi ostrzami) nad oceanem. Należy zauważyć, że łopatki turbiny są teraz wirujące.
Przeciągnij tę samą turbinę z dala od oceanu i umieść ją z powrotem na tablecie. Należy pamiętać, że łopatki turbiny przestają wirować.
Po zakończeniu obserwacji animacji naciśnij przycisk Odtwarzania edytora aparatu Unity, aby zamknąć tryb odtwarzania.
Nie musisz aktualizować innych turbin wiatrowych---we już to zrobił dla Ciebie.
Stacja 4.3: Ciała ograniczające
W tej chwili nie ma żadnego ograniczenia, w którym uczestnik może upuścić turbinę wiatrową. Mamy nadzieję , że umieszczają turbiny w oceanie, gdzie mogą złapać wiatr, ale uczestnik może na przykład przypadkowo upuścić turbinę na podłodze. Chcemy tego uniknąć, aby zapewnić, że turbiny mogą wylądować tylko na tablecie lub w oceanie, możemy utworzyć pole powstrzymywania. Jest to w zasadzie przezroczysta skrzynka--- turbiny będą ograniczone do wewnątrz pudełka.
W hierarchii rozwiń obiekt GameObject o nazwie 4.3 - Constraining Bodies GameObject i wybierz jego obiekt podrzędny o nazwie Zawieranie.
W obszarze Inspector (Inspektor) wybierz przycisk Add Component (Dodaj składnik), a następnie dodaj składnik Containment Field (Zawieranie pola).
W składniku Zawieranie pola wybierz przycisk "+" po prawej stronie opcji Ciała, którego dotyczy problem , a następnie w menu podręcznym wybierz warunek Nazwa obiektu gry .
W polu Rozpoczyna się od wpisz "WindTurbine". Ponieważ wszystkie trzy turbiny wiatrowe w naszej scenie zaczynają się od "WindTurbine", wszystkie będą ograniczone do Pola Zawierania.
Testowanie pracy
Zapisz projekt, a następnie naciśnij przycisk Odtwarzania edytora aparatu Unity.
Jak wspomniano wcześniej, wejście w tryb odtwarzania powoduje umieszczenie awatara na tarasie Sphere Chapter3 . Obróć scenę po prawej stronie, a następnie przejdź do przycisku Teleport do rozdziału 4 i naciśnij go.
Powinien być teraz na tarasie Sphere Chapter4 . Przeciągnij jedną z turbin wiatrowych z dala od blatu i oceanu i spróbuj upuścić ją na podłodze. Pole zawierania uniemożliwia wykonanie tych czynności.
Rozdział 4. Podsumowanie
W tym rozdziale dodano funkcje usługi Mesh, które umożliwiają uczestnikom twoich doświadczeń wykonywanie następujących czynności:
Pobieranie i przenoszenie obiektu
Wyzwalanie animacji, gdy uczestnik przeciąga obiekt do woluminu wyzwalacza
Upuszczanie obiektu tylko w określonym obszarze