Udostępnij za pośrednictwem


Mesh 101 Tutorial Chapter 3: Add interactivity with Mesh Visual Scripting



Teraz, gdy ukończyliśmy fazę konfiguracji, przejdźmy do interaktywnego tworzenia obiektów GameObjects. W tym rozdziale omówimy tworzenie skryptów wizualnych usługi Mesh, których można użyć do dodawania logiki niestandardowej do środowiska.

Uwaga

  • Istnieją dwa typy skryptów siatki: Tworzenie skryptów w chmurze siatki, które używa kodu C# i tworzenie skryptów wizualnych usługi Mesh, gdzie tworzysz graf skryptów, a następnie dodajesz węzły (nazywane również jednostkami) w sekwencji, aby utworzyć logikę kodowania. W tej wersji samouczka usługi Mesh 101 jest używana obsługa skryptów wizualnych usługi Mesh; w poprzedniej wersji użyto skryptów usługi Mesh Cloud Scripting.

  • Skrypty siatki nie są wymagane dla każdego środowiska, ale będą potrzebne do funkcji, które dodamy tutaj: tworzenie przycisku interaktywnego, wyzwalanie wyskakującego tekstu informacyjnego i teleportowanie wokół sceny.

Stacja 3.1: Tworzenie przycisku z możliwością interakcji

W naszym pierwszym zadaniu chcemy utworzyć przycisk, który będzie odtwarzał film wideo po naciśnięciu przez awatar. Awatar może następnie nacisnąć ten sam przycisk, aby zatrzymać wideo.

  • W oknie Scena przejdź do tarasu sphere zawierającego stacje rozdziału 3 i dostosuj widok tak, aby patrzył na pierwszą stację, 3.1 - Odtwarzanie wideo, jak pokazano poniżej.

Zrzut ekranu przedstawiający okno odtwarzania wideo w oknie sceny aparatu Unity z pierwszą stacją w środowisku

Jak widać, istnieje już ekran wideo, ale potrzebuje przycisku Odtwórz/Zatrzymaj. Jak wyjaśniono w polu tekstowym stacji, utworzymy wykres skryptu z pewną logiką przycisku, dzięki czemu przycisk może służyć do przełączania i wyłączania i zmieniania tekstu przycisku.

Dodawanie przycisku do sceny

  1. Upewnij się, że obiekt GameObject o nazwie Chapter3 i jego obiekt podrzędny o nazwie 3.1 — wideo są rozwinięte.

    Zrzut ekranu przedstawiający rozszerzenie Hierachy aparatu Unity z rozwiniętymi folderami wideo Rozdział3 i 3.1

  2. W oknie Projekt wyszukaj prefab ButtonBase. Upewnij się, że wybrano pozycję WSZYSTKIE dla filtru Wyszukaj .

    Zrzut ekranu przedstawiający termin Buttonbase przeszukany w oknie Projekt w aparacie Unity

  3. Przeciągnij pozycję ButtonBase z okna Projekt, a następnie w hierarchii upuść ją na obiekcie GameObject o nazwie 3.1 — wideo, aby baza ButtonBase została umieszczona jako element podrzędny do wersji 3.1 — wideo.

    Zrzut ekranu przedstawiający bazę przycisków przeciągnięty do hierarchii i dodany do obiektu GameObject o nazwie 3.1 — wideo

    Upewnij się, że wartości Pozycji przekształcenia>dla elementu ButtonBase mają wartość 0, 0, 0.

    Element ButtonBase znajduje się w scenie nieco niżej niż w miejscu, w którym chcemy. Naprawmy to.

  4. Upewnij się, że w hierarchii wybrano pozycję ButtonBase.

  5. W inspektorze zmień wartość Przekształć>pozycję>Y na "1".

Doskonale! Teraz baza ButtonBase znajduje się tuż pod ekranem wideo.

Zrzut ekranu aparatu Unity przedstawiający bazę przycisków poniżej obiektu BackplateBase

Zmienianie nazwy przycisku

  • Po wybraniu pozycji ButtonBase w inspektorze zmień nazwę Elementu ButtonBase na "PlayVideoButton".

    Zrzut ekranu aparatu Unity przedstawiający nazwę ButtonBase zmieniono nazwę na PlayVideButton

Zmienianie etykiety przycisku

W tej chwili tekst na przycisku wskazuje etykietę. Zmieńmy to na "Play".

  1. W hierarchii rozwiń obiekt PlayVideoButton GameObject, aby wyświetlić jego obiekt podrzędny Przycisk, a następnie rozwiń przycisk, aby wyświetlić jego obiekty podrzędne, a następnie wybierz obiekt podrzędny Etykieta.

    Zrzut ekranu aparatu Unity przedstawiający hierarcchy z wyróżnioną etykietą przycisku.

  2. W inspektorze przejdź do składnika TextMeshPro - Text, a następnie w polu Wprowadzanie tekstu zmień tekst na "Odtwórz".

    Zrzut ekranu aparatu Unity przedstawiający inspektora etykiety przycisku z wyróżnionym tekstem Odtwórz.

Tworzenie skryptu wizualnego dla przycisku

  1. W obszarze Hierarchia upewnij się, że wybrano pozycję PlayVideoButton .

  2. W inspektorze kliknij pozycję Dodaj składnik, a następnie wybierz pozycję Maszyna skryptu.

    Należy pamiętać, że w inspektorze: maszynie skryptu i zmiennych dodano dwa nowe składniki. W dolnej części inspektora znajduje się również nowe okno o nazwie Mesh Visual Scripting Diagnostics (Diagnostyka skryptów wizualnych usługi Mesh). To okno przekaże Ci opinię na temat skryptu wizualnego i może być przydatne do rozwiązywania problemów.

    Zrzut ekranu aparatu Unity przedstawiający dwa dodane składniki: Maszynę skryptu i Zmienne.

  3. Należy pamiętać, że w składniku Maszyna skryptu opcja Źródło jest ustawiona na graf. Dostępne są dwie opcje: Źródło: Graf i Osadź. Kliknij listę rozwijaną Źródło , a następnie wybierz pozycję Osadź.

    Napiwek

    Grafy i osadzanie mają zalety i wady. Więcej informacji na temat nich można znaleźć w artykule Dotyczącym maszyny skryptów aparatu Unity. Wybieramy opcję Osadź tutaj, ponieważ między innymi możesz odwoływać się bezpośrednio do węzłów sceny bez wprowadzania pośrednich zmiennych obiektu.

  4. W składniku Script Machine wprowadź nazwę w polu Tytuł grafu: "Zachowanie odtwarzacza wideo".

  5. Wprowadź opis w polu Podsumowanie grafu: "Definicja zachowania odtwarzacza wideo".

Konfigurowanie grafu skryptu

  1. W składniku Maszyna skryptu kliknij pozycję Edytuj graf. Spowoduje to otwarcie okna wykresu skryptu. Przeciągnij i umieść go obok karty Project and Console (Projekt i konsola ), jeśli jeszcze nie istnieje, aby zobaczyć wykres skryptu i okno Scena w tym samym czasie.

    Zrzut ekranu aparatu Unity przedstawiający składnik Script Machine wyróżniony za pomocą wykresu skryptu otwartego.

    W miarę dodawania węzłów może być potrzebne więcej miejsca w oknie; Możesz kliknąć przycisk z trzema kropkami, a następnie wybrać pozycję Maksymalizuj , aby to osiągnąć, lub kliknąć przycisk Pełny ekran w prawym górnym rogu okna.

  2. Nie potrzebujemy domyślnych węzłów OnStart i OnUpdate ; usuń je.

Wykryj, czy przycisk został kliknięty

Ten wykres skryptu można traktować jako mający trzy główne cele:

  1. Wykryj, kiedy przycisk odtwarzania/zatrzymywania odtwarzacza wideo jest klikany.
  2. Po kliknięciu odtwarzania wideo.
  3. Po ponownym kliknięciu zatrzymaj wideo.

Pierwszy cel, wykryj, kiedy przycisk zostanie kliknięty, będzie wymagał trzech węzłów. Obiekt GameObject w projekcie, który rzeczywiście "nasłuchuje" i reaguje na kliknięcie, to Przycisk. Dodajmy to do grafu skryptów.

Uwaga

Węzeł jest również nazywany jednostką w skryptach wizualnych. W tym samouczku będziemy nadal używać węzła terminu .

  1. Przeciągnij przycisk z hierarchii , a następnie upuść go na grafie skryptu.

    Zrzut ekranu aplikacji Uniy przedstawiający przeciągnięcie przycisku na graf skryptu.

  2. W menu Node wybierz pozycję Przycisk. Węzeł Literał obiektu gry odwołującego się do tego obiektu jest dodawany do grafu.

    Zrzut ekranu aparatu Unity przedstawiający wybrany graf skryptu i obiekt przycisku wyświetlany w oknie Skrypt graph.


PORADA: Możesz pośminąć chwilę tutaj, aby zbadać niektóre składniki obiektu GameObject przycisku :

Konfiguracja z możliwością interakcji z usługą Mesh: powoduje to, że Przycisk jest obiektem, z którym można korzystać. Ten składnik pomaga śledzić interakcje — należy pamiętać, że na poniższej ilustracji wybrano pewne ustawienia aktywowania. Więcej informacji na temat tego składnika można dowiedzieć się w naszym artykule o nazwie Grab, hold and throw with Interactables (Chwytanie, blokada i zgłaszanie za pomocą funkcji Interakcji).

Zrzut ekranu aparatu Unity przedstawiający okno konfiguracji z możliwością interakcji z usługą Mesh i dołączone ustawienia.

Maszyna skryptu: ma wykres skryptu o nazwie Zachowanie podstawowe przycisku.

Zrzut ekranu aparatu Unity przedstawiający okno Zachowanie podstawowe przycisku dla maszyny skryptu.

Jeśli przejdziesz do trybu odtwarzania, zobaczysz, że do przycisku zostanie dodany nowy składnik o nazwie Mesh Interactable Body.

Zrzut ekranu aparatu Unity przedstawiający nową treść z możliwością interakcji z siatką składników dodaną do składnika Button.

Ten składnik jest dodawany automatycznie w czasie wykonywania w celu interakcji z ciałami; uwidacznia różne właściwości skryptów wizualnych, takich jak IsHovered i IsSelected, co przydaje się za chwilę.


Na wykresie skryptu dodajmy węzeł, który informuje nas o wybraniu przycisku.

  1. Jeśli chcesz, zamknij tryb odtwarzania, a następnie wybierz pozycję PlayVideoButton w hierarchii, aby upewnić się, że w oknie Wykres skryptu widzisz jego osadzony graf.

  2. Na wykresie skryptu kliknij i przytrzymaj port outportu węzła Game Object , a następnie zwolnij przycisk myszy. Spowoduje to otwarcie narzędzia Fuzzy Finder. OSTRZEŻENIE: Po otwarciu narzędzia Rozmyte wyszukiwanie nie klikaj nigdzie poza interfejsem aparatu Unity. Spowoduje to zamknięcie narzędzia Rozmyte wyszukiwanie i powoduje nieprzewidywalne zachowanie w grafie skryptów.

    Zrzut ekranu przedstawiający opis odtwarzania wideo

  3. Wyszukaj pozycję Jest zaznaczona, a następnie na liście wybierz pozycję Treść z możliwością interakcji z siatką: IsSelected.

    Zrzut ekranu przedstawiający opis odtwarzania wideo

    Uwaga: ten węzeł zwraca wartość logiczną. Można to potwierdzić w Inspektorze grafu.

  4. Przeciągnij łącznik z portu wyjściowego węzła Is Selected ,a następnie utwórz nowy węzeł o nazwie Microsoft Mesh: On State Changed (Stan zmieniony). (W narzędziu Fuzzy Finder wyszukaj stan zmieniony).

    Zrzut ekranu przedstawiający opis odtwarzania wideo

Są to nasze trzy węzły wykrywania kliknięcia przycisku. Węzeł Jest zaznaczony zaczyna się od wartości False, ale po kliknięciu przycisku wartość zmienia się na True i jest przekazywana do węzła On State Changed ( Zmieniono stan). Następnie ten węzeł wyzwala węzły odtwarzania/zatrzymywania, które dodamy dalej.

Odtwarzanie lub zatrzymywanie wideo

Jeśli w przypadku zmiany stanu ma wartość true, film będzie odtwarzany. Jeśli jest już odtwarzany, a przycisk jest naciśnięty, opcja Po zmianie stanu zmieni się na wartość false, a wideo przestanie być odtwarzane. Następnym krokiem jest dodanie węzła if w celu określenia tego przepływu.

  1. Przeciągnij łącznik z portu wyjściowego kontrolki węzła On State Changed (Zmieniono stan), a następnie utwórz nowy węzeł if . (W narzędziu Fuzzy Finder wyszukaj frazę if).

    Zrzut ekranu przedstawiający opis odtwarzania wideo

  2. Przeciągnij łącznik z portu danych wyjściowych węzła On State Changed (Zmieniono stan) na port wejściowy danych węzła if .

    Zrzut ekranu przedstawiający opis odtwarzania wideo

Utwórz zmienną, aby określić, czy wideo jest odtwarzane, czy nie

  1. W tablicy Blackboard przejdź do karty Obiekt, a następnie utwórz zmienną o nazwie "isPlaying". Ustaw wartość typu "Wartość logiczna" i pozostaw pole wyboru Wartość niezaznaczone. Daje to wartość logiczną wartość domyślną false.

    Zrzut ekranu przedstawiający opis odtwarzania wideo

  2. Przeciągnij łącznik z portu danych wyjściowych true control węzła If, a następnie utwórz nowy węzeł Ustaw zmienną obiektu. (W narzędziu Fuzzy Finder wyszukaj ciąg set object.).

    Zrzut ekranu przedstawiający opis odtwarzania wideo

  3. W węźle Ustaw zmienną obiektu kliknij listę rozwijaną nazwa zmiennej, a następnie wybierz pozycję IsPlaying.

    Zrzut ekranu przedstawiający opis odtwarzania wideo

    Zmienna isPlaying musi wykonywać podwójne obowiązki tutaj. Aby upewnić się, że funkcja isPlaying zawsze ma poprawną wartość, nadajmy mu dane wejściowe z węzła Negate .

  4. Przeciągnij łącznik z portu wejściowego danych w węźle Ustaw zmienną obiektu: isPlaying , a następnie utwórz nowy węzeł Negate . (W narzędziu Fuzzy Finder wyszukaj negację).

    Zrzut ekranu przedstawiający opis odtwarzania wideo

  5. Przeciągnij łącznik z portu Danych wejściowych węzła Negate , a następnie utwórz nowy węzeł Pobierz zmienną obiektu. (W narzędziu Fuzzy Finder wyszukaj zmienną obiektu get).

  6. W węźle Pobierz zmienną obiektu kliknij listę rozwijaną nazwa zmiennej, a następnie wybierz pozycję IsPlaying.

    Zrzut ekranu przedstawiający opis odtwarzania wideo

Węzeł Negate powoduje zmianę wartości IsPlaying na przeciwieństwo tego, co jest obecnie ustawione. Po uruchomieniu sceny funkcja isPlaying ma wartość false (wartość domyślna). Po kliknięciu przycisku Odtwórz/Zatrzymaj węzeł Negate powoduje odtwarzanie w węźle Ustaw zmienną obiektu na wartość true i powoduje to odtwarzanie wideo. Po ponownym kliknięciu przycisku węzeł Negate spowoduje zresetowanie wartości false i spowoduje zatrzymanie wideo.

Włączanie lub wyłączanie wideo

Teraz dodamy węzły, które wykryją, czy funkcja isPlaying zmienia; wideo będzie odtwarzane lub zatrzymywane na podstawie tej zmiany.

  1. W dolnej części grafu dodaj węzeł Pobierz zmienną obiektu i ustaw jego wartość na isPlaying. (Możesz kliknąć prawym przyciskiem myszy wykres, a następnie wybrać polecenie Dodaj węzeł).

    Zrzut ekranu przedstawiający opis odtwarzania wideo

  2. Przeciągnij łącznik z portu wyjściowego danych zmiennej Get Object: isPlaying , a następnie utwórz nowy węzeł W stanie Zmieniony . (W narzędziu Fuzzy Finder wyszukaj stan zmieniony).

    Zrzut ekranu przedstawiający opis odtwarzania wideo

  3. Przeciągnij łącznik z portu wyjściowego kontrolki węzła On State Changed ,a następnie utwórz nowy węzeł If . (W narzędziu Fuzzy Finder wyszukaj frazę if).

  4. Przeciągnij łącznik z portu wyjściowego danych węzła On State Changed ,a następnie połącz go z portem wejściowym danych węzła if .

    Zrzut ekranu przedstawiający opis odtwarzania wideo

Tworzenie odtwarzania wideo

  1. W hierarchii rozwiń obiekt VideoPlayer GameObject i zwróć uwagę, że ma dwa obiekty podrzędne: Video i VideoStill.

  2. Wybierz pozycję Wideo, a następnie w inspektorze zanotuj następujące kwestie:

    • Wideo ma składnik o nazwie Video Player, który zawiera wideo dołączone o nazwie WindTurbine.

    Zrzut ekranu przedstawiający opis odtwarzania wideo

    • Wideo jest nieaktywne (pole wyboru obok jego nazwy jest puste).
  3. W hierarchii wybierz obiekt VideoStill GameObject, a następnie w inspektorze zanotuj następujące elementy:

    • Aplikacja VideoStill ma dołączony obraz.

    • Aplikacja VideoStill jest aktywna (pole wyboru obok jego nazwy jest zaznaczone).

    Zrzut ekranu przedstawiający opis odtwarzania wideo

Po uruchomieniu sceny na ekranie wideo jest wyświetlany obraz nadal (ze względu na to, że aplikacja VideoStill jest aktywna) i nie odtwarza wideo (co jest spowodowane brakiem aktywności wideo). Gdy uczestnik naciska przycisk Odtwórz/Zatrzymaj podczas wyświetlania odtwarzania, powoduje , że wideo jest aktywne, co powoduje odtwarzanie wideo, a jednocześnie powoduje, że film VideoStill jest nieaktywny, co powoduje ukrycie obrazu. Etykieta przycisku również zmienia się z Odtwarzania na Zatrzymaj , Gdy uczestnik ponownie naciska przycisk, Wideo jest nieaktywne, zatrzymuje klip wideo, a videoStill jest ponownie aktywny, co sprawia, że ekran wideo będzie ponownie wyświetlać obraz.

Pozostałe węzły na naszym grafie sprawiają, że wszystko się stanie.

  1. Przeciągnij łącznik z portu danych wyjściowych true control węzła if i utwórz nowy obiekt gry: ustaw aktywny węzeł. (W narzędziu Fuzzy Finder wyszukaj ciąg aktywny).

  2. W polu Game Object: Set Active node (Obiekt gry: Ustaw aktywny węzeł) kliknij przycisk rundy w polu GameObject, a następnie w oknie Select GameObject (Wybieranie obiektu GameObject ) wyszukaj i wybierz pozycję Wideo.

  3. Zaznacz pole wyboru Wartość węzła, co sprawia, że węzeł jest aktywny.

    Zrzut ekranu przedstawiający opis odtwarzania wideo

  4. Przeciągnij łącznik z portu wyjściowego kontrolki obiektu gry: ustaw aktywny węzeł, a następnie utwórz kolejny nowy obiekt gry: ustaw aktywny węzeł.

  5. W nowym węźle Game Object: Set Active (Obiekt gry: Ustaw aktywny węzeł) kliknij przycisk rundy w polu GameObject (obecnie wyświetla wartość This), a następnie w oknie Select GameObject (Wybierz obiekt GameObject ) wyszukaj i wybierz pozycję VideoStill.

  6. Pozostaw pole wyboru Wartość niezaznaczone. Powoduje to, że węzeł jest nieaktywny.

    Teraz po kliknięciu przycisku zostanie odtwórz wideo, a obraz nadal będzie ukryty. Potrzebujemy jeszcze jednej rzeczy w tej sekwencji. Ponieważ przycisk Odtwórz/Zatrzymaj jest przełącznikiem, musimy upewnić się, że po kliknięciu przez uczestnika pozycji Odtwórz etykieta przycisku zmieni się na Zatrzymaj, a następnie po ponownym kliknięciu etykieta zmieni się z powrotem na Odtwórz. Aby to osiągnąć, dodamy węzeł TextMeshPro .

  7. Przeciągnij łącznik z portu wyjściowego kontrolki ostatniego obiektu gry: ustaw aktywny węzeł i utwórz nowy węzeł Text Mesh Pro: Set Text Mesh. (W narzędziu Fuzzy Finder wyszukaj tekst ustawiony).

    Zrzut ekranu przedstawiający opis odtwarzania wideo

    Musimy ustawić docelowy obiekt GameObject tego węzła na etykietę. Jednak w projekcie istnieje wiele obiektów GameObjects "Label" i wszystkie wyglądają tak samo na liście podręcznej węzła, więc dodajmy ten obiekt przy użyciu metody przeciągania i upuszczania.

  8. Przeciągnij obiekt Label GameObject, który jest elementem podrzędnym obiektu Button z hierarchii , a następnie upuść go w pierwszym polu w węźle Ustaw test .

    Zrzut ekranu przedstawiający opis odtwarzania wideo

  9. W polu tekstowym węzła wpisz ciąg "Stop".

    Zrzut ekranu przedstawiający opis odtwarzania wideo

Zatrzymanie wideo

Wystarczy trzy kolejne węzły, aby przejść do tego grafu! Musimy skonfigurować fałszywy warunek dla przycisku, aby po kliknięciu przycisku podczas odtwarzania wideo zmienna isPlaying stała się fałszem i powoduje zatrzymanie wideo, a etykieta przycisku zmieni się na Odtwórz ponownie.

Tutaj możemy podjąć skrót.

  1. Kliknij trzy ostatnie dodane węzły. Spowoduje to wybranie ich.

  2. Kliknij prawym przyciskiem myszy wykres skryptu, a następnie w menu podręcznym wybierz polecenie Duplikuj zaznaczenie.

  3. Przeciągnij zduplikowane węzły do pustego miejsca na grafie tuż pod zduplikowanymi węzłami.

    Zrzut ekranu przedstawiający opis odtwarzania wideo

  4. Przeciągnij łącznik z portu danych wyjściowych false control ostatniego węzła if i połącz go z portem wejściowym kontrolki pierwszego obiektu gry: ustaw aktywny węzeł w zduplikowanym zestawie węzłów.

  5. W tym samym pierwszym obiekcie gry: ustaw aktywny węzeł (ten, który zawiera wideo), usuń zaznaczenie wartości.

  6. W drugim obiekcie gry: ustaw aktywny węzeł w zduplikowanym zestawie (ten, który zawiera VideoStill), wybierz wartość.

  7. W węźle Ustaw tekst zmień tekst z Stop na Play.

    Zrzut ekranu przedstawiający opis odtwarzania wideo

Udostępnianie interakcji odtwarzacza wideo z innymi osobami w środowisku

Mogą wystąpić czasy, gdy chcesz, aby zdarzenia skryptu były doświadczane tylko przez uczestnika wyzwalającego zdarzenia, a inne czasy, gdy chcesz, aby zdarzenia były doświadczane przez wszystkich w scenie. Można to kontrolować za pomocą składnika Zakres skryptu lokalnego.

  1. W obszarze Hierarchia upewnij się, że wybrano pozycję PlayVideoButton .

  2. W inspektorze kliknij przycisk Dodaj składnik, a następnie dodaj zakres skryptu lokalnego.

    Zrzut ekranu przedstawiający opis odtwarzania wideo

Na potrzeby tego samouczka chcemy, aby wszyscy uczestnicy w środowisku mogli zobaczyć wszelkie interakcje z odtwarzaczem wideo i zobaczyć sam film wideo odtwarzany i wstrzymany. Aby to upewnić się, upewnij się, że wybrano opcję Udostępnij zmienne skryptu wizualizacji dla tego obiektu gry. Pole informacji poniżej tej opcji informuje o tym, co jest udostępniane i co pozostaje lokalne.

Zrzut ekranu przedstawiający opis odtwarzania wideo

Testowanie pracy

  1. W środowisku Unity zapisz projekt, a następnie naciśnij przycisk Odtwarzania edytora aparatu Unity.

  2. W oknie Game (Gra) kliknij przycisk Play (Odtwórz) poniżej odtwarzacza wideo. Powoduje to, że etykieta na przycisku zmieni się na Zatrzymaj i krótki film o turbinach wiatrowych do odtwarzania na ekranie powyżej przycisku.

    Zrzut ekranu przedstawiający opis odtwarzania wideo

  3. Po zakończeniu oglądania filmu wideo naciśnij przycisk, który edytowano ponownie (ma teraz etykietę Zatrzymaj).

  4. Naciśnij przycisk Odtwarzania edytora aparatu Unity, aby zamknąć tryb odtwarzania.

Stacja 3.2: Wyzwalanie okna dialogowego informacji

W przypadku tej funkcji ulepszymy istniejący skrypt wizualny, który powoduje wyświetlenie okna dialogowego informacji po naciśnięciu przycisku przez awatar.

  1. W hierarchii zwiń element 3.1 — Video GameObject.

  2. W oknie Scena zwróć uwagę, że stacja Wyzwalacz okna dialogowego informacji znajduje się po prawej stronie stacji odtwarzania wideo 3.1. Dostosuj widok, aby wyraźnie zobaczyć stację 3.2.

    Zrzut ekranu przedstawiający opis komputera

  3. W obszarze Inspector (Inspektor) rozwiń obiekt GameObject o nazwie 3.2 — okno dialogowe Informacje.

  4. W hierarchii wybierz pozycję InfoButtonWrapper.

    Zrzut ekranu 3.2 — Info_Dialog Hierarchia obiektu GameObject z wybraną Information_Button

    W Inspektorze zwróć uwagę, że element InfoButtonWrapper ma dołączony składnik Zakres skryptu lokalnego i że jego zmienne skryptu wizualizacji udziału w tej opcji Obiekt gry nie są zaznaczone.

    Zrzut ekranu 3.2 — Info_Dialog Hierarchia obiektu GameObject z wybraną Information_Button

    Dzieje się tak, ponieważ po kliknięciu przez uczestnika przycisku, który powoduje wyświetlenie okna dialogowego informacji, przycisk staje się dla nich ukryty. Jeśli ta opcja została wybrana, przycisk zostanie ukryty dla wszystkich w scenie i nie chcemy tego.

  5. W inspektorze przejdź do składnika Maszyna skryptów, który zawiera graf Pokaż okno dialogowe, a następnie kliknij przycisk Edytuj graf.

    Zrzut ekranu inspektora Information_Button

  6. Na wykresie przeciągnij łącznik z portu Danych wyjściowych true Control węzła If, a następnie utwórz nowy węzeł Microsoft Mesh: Pokaż węzeł okna dialogowego. (W narzędziu Fuzzy Finder wyszukaj okno dialogowe pokaż).

    Zrzut ekranu przedstawiający połączenie węzła if z nowym węzłem Pokaż okno dialogowe.

  7. W węźle Pokaż okno dialogowe kliknij pole Komunikat , a następnie zastąp wyraz Komunikat następującym zdaniem:

    Czy wiesz, że największa turbina wiatrowa na świecie ma ostrza dłuższe niż boisko piłkarskie?

    Jest to komunikat, który pojawi się w oknie dialogowym informacji.

    Zrzut ekranu przedstawiający węzeł Pokaż okno dialogowe z dodanym komunikatem.

  8. Wybierz listę rozwijaną, która aktualnie wyświetla przycisk OK, a następnie na liście podręcznej usuń zaznaczenie pozycji OK i wybierz pozycję Kontynuuj. Spowoduje to dodanie przycisku Kontynuuj do okna dialogowego informacji, które użytkownik może kliknąć, aby zamknąć okno dialogowe po zakończeniu odczytywania komunikatu.

    Zrzut ekranu przedstawiający węzeł Pokaż okno dialogowe z dodanym komunikatem.

Testowanie pracy

  1. W edytorze aparatu Unity zapisz projekt, a następnie naciśnij przycisk Odtwarzania edytora aparatu Unity.

  2. Użyj nawigacji, aby wrócić do awatara z dala od przycisku. Zwróć uwagę, że gdy awatar znajduje się w pewnej odległości, przycisk obraca się i nie można go wybrać.

  3. Przejdź w kierunku przycisku. W pewnym momencie przycisk zatrzymuje obracanie się, sygnalizując, że można go teraz wybrać.

  4. Wybierz przycisk . Zostanie wyświetlone okno dialogowe informacji i zostanie wyświetlony komunikat dodany do węzła Pokaż okno dialogowe wcześniej.

    Uwaga

    Wygląd okna dialogowego informacji w trybie odtwarzania różni się od tego, jak będzie on wyświetlany w mesh, gdzie będzie wyglądać podobnie jak inne panele na tarasie sphere.

  5. Po zakończeniu pracy z oknem dialogowym informacji kliknij przycisk Kontynuuj . Pamiętaj, że po kliknięciu przycisku znika. Aby ponownie użyć przycisku, musisz zamknąć, a następnie ponownie wprowadzić tryb odtwarzania.

    Napiwek

    Odległość i wyzwalanie elementów w tym miejscu są określane przez składniki obiektu GameObject ProximityDetector .

    Zrzut ekranu przedstawiający obiekt GameObject ProximityDetector w hierarchii.

  6. Naciśnij przycisk Odtwarzania edytora aparatu Unity, aby zamknąć tryb odtwarzania.

Stacja 3.3: Teleport do generatora turbiny

W przypadku tej funkcji dodamy kilka węzłów do grafu skryptu, który umożliwia uczestnikom w scenie teleportacje. Gdy uczestnik naciska przycisk, są teleportowani z bieżącej lokalizacji na Stacji 3.3 do podniesionej platformy, która jest przymocowana do generatora turbin wiatrowych. Następnie mogą zbadać generator.

Obraz zawierający zewnętrzny, tekst, zrzut ekranu, opis wiatraka automatycznie wygenerowany

Aktualizowanie grafu skryptu

  1. W oknie Scena zwróć uwagę, że stacja teleportu 3.3 - Teleport do turbiny znajduje się po prawej stronie stacji wyzwalacza okna dialogowego informacji 3.2. Dostosuj widok, aby wyraźnie zobaczyć stację 3.3.

  2. W hierarchii zwiń element 3.2 — Info Dialog GameObject, a następnie rozwiń obiekt GameObject 3.3 — Teleport GameObject.

    Zrzut ekranu

    Przycisk jest skonfigurowany dla Ciebie--- wystarczy dodać węzły na grafie skryptu, które dają mu zachowanie teleportu.

  3. W hierarchii rozwiń węzeł ChapterLabel GameObject, a następnie wybierz obiekt GameObject TeleportToWindTurbineButton.

    Zrzut ekranu

    Należy pamiętać, że w inspektorze istnieje składnik Script Machine z grafem skryptu o nazwie Teleport to Open Air Platform. Opcja Źródło jest ustawiona na Osadź, co oznacza, że wykres skryptu jest osadzony w scenie.

    Zrzut ekranu

  4. Kliknij przycisk Edytuj graf. Podobnie jak w poprzednim rozdziale nasz graf ma już kilka węzłów skonfigurowanych dla Ciebie.

    Zrzut ekranu

W ciągu chwili dodamy węzły do tego grafu skryptów.

Tworzenie punktu podróży i dodawanie do niego odwołania

Więc co to jest "Punkt podróży", możesz pytać ... ? Zasadniczo jest to składnik, którego można użyć do zdefiniowania punktu w przestrzeni w celu zduplikowania lub teleportowania. Zwykle należy najpierw utworzyć grupę podróży, a następnie dodać do niej co najmniej jeden punkt podróży. Utworzyliśmy już grupę podróży dla Ciebie w tym projekcie, więc w poniższych krokach dodamy punkt podróży do tej grupy. Następnie użyjemy tego punktu podróży jako lokalizacji, do której przejdzie awatar po kliknięciu przycisku Teleport . Aby dowiedzieć się więcej, zobacz nasz artykuł o nazwie Create avatar spawn and teleport points (Tworzenie punktów duplikowania awatara i teleportowania).

  1. W hierarchii utwórz nowy pusty obiekt GameObject jako obiekt podrzędny na TravelGroup, a następnie zmień jego nazwę na "TeleportLocationWindTurbine".

    Zrzut ekranu

  2. W inspektorze kliknij przycisk Dodaj składnik, a następnie wyszukaj i dodaj składnik Punkt podróży.

    Zrzut ekranu

  3. W inspektorze w składniku Przekształć wprowadź następujące wartości:

    Position (Pozycja):

    X = 6
    Y = 58
    Z = 61

    Obrót:

    X = 0
    Y = 270
    Z = 0

    Zrzut ekranu

    Awatar będzie teleportować do tej lokalizacji.

  4. W inspektorze ustaw obiekt TeleportLocationWindTurbine GameObject jako nieaktywny, usuwając zaznaczenie pola wyboru obok jego nazwy. Jeśli w czasie wykonywania jest aktywny więcej niż jeden obiekt Programu TravelPoint, aparat Unity losowo wybiera jeden z aktywnych punktów podróży jako punkt tarła awatara. Chcemy upewnić się, że awatar duplikuje się w punkcie wskazanym przez TeleportLocationChapter3 GameObject, tak aby był jedynym aktywnym punktem podróży. W wyniku nieaktywności teleportLocationWindTurbine jest wyświetlany wygaszony w hierarchii.

    Zrzut ekranu

Dodawanie węzłów teleportu

  1. Na grafie skryptów Teleport to Open Air Platform przeciągnij łącznik z portu kontroli danych wyjściowych True węzła If , a następnie utwórz nowy węzeł o nazwie Game Object: Set Active. (W narzędziu Fuzzy Finder wyszukaj ciąg aktywny).

    Zrzut ekranu

  2. Przeciągnij obiekt TeleportLocationWindTurbine z hierarchii, a następnie upuść go w polu, w którym jest wyświetlany obiekt Gry: Ustaw aktywny węzeł.

    Zrzut ekranu

  3. Wybierz opcję Wartość węzła, aby ją uaktywnić.

Dodawanie węzła Punkt podróży

  1. Przeciągnij łącznik z portu wyjściowego kontrolki obiektu gry: ustaw aktywny węzeł, a następnie utwórz nowy węzeł o nazwie Punkt podróży: Podróż do punktu. (W Fuzzy Finder wyszukaj punkt podróży: podróż).)

  2. W węźle Punkt podróży: Podróż do punktu kliknij przycisk rundy w polu, w którym jest wyświetlana ta pozycja, a następnie w oknie Wybierz program TravelPoint wybierz pozycję TeleportLocationWindTurbine.

    Zrzut ekranu

Spowoduje to ukończenie grafu.

Zrzut ekranu

Testowanie pracy

  1. W edytorze aparatu Unity zapisz projekt, a następnie naciśnij przycisk Odtwarzania edytora aparatu Unity.

  2. Przejdź do stacji 3.3, a następnie kliknij przycisk Teleport , aby teleportować do generatora turbiny wiatrowej.

    Zrzut ekranu

    Zrzut ekranu przedstawiający automatycznie wygenerowany opis komputera

  3. W polu Informacje o generatorze 3.3 wybierz przycisk Pokaż/Ukryj generator. Okno otwiera się po stronie turbiny wiatrowej i widać generator wewnątrz.

    Zrzut ekranu komputera z opisem maszyny

Możesz zbliżyć się do generatora i spojrzeć. To całkiem fajne! Po zakończeniu przejdź wstecz, a następnie naciśnij przycisk Pokaż/Ukryj generator . Spowoduje to zamknięcie okna.

Przejdź do rozdziału 4

W tym momencie uczestnicy doświadczenia będą gotowi przejść do rozdziału 4 i dowiedzieć się więcej o działaniach turbin wiatrowych związanych z fizyką. Podobnie jak w rozdziale 3, istnieje taras sfery, który zawiera stacje rozdziału 4. Aby do niego przejść:

  1. Obracaj się w przeciwnym kierunku od generatora turbin wiatrowych i przejdź w kierunku 3,3 - Przejdź do pola informacyjnego Rozdział 4 .

    Zrzut ekranu przedstawiający opis komputera

  2. Naciśnij przycisk Teleportuj do rozdziału 4 .

    Zrzut ekranu przedstawiający opis komputera

    Jak reklamowane, to umieszcza awatar przed stacjami rozdziału 4 i fizyki siatki.

    Obraz zawierający tekst, zrzut ekranu, oprogramowanie multimedialne, opis oprogramowania graficznego automatycznie wygenerowany

Rozdział 3. Podsumowanie

W tym rozdziale użyto tworzenia skryptów wizualnych usługi Mesh w celu dodania funkcji umożliwiających uczestnikom korzystanie z następujących czynności:

  1. Naciśnij przycisk, który powoduje, że edukacyjny film o turbinach wiatrowych grać.

  2. Naciśnij przycisk, który wyzwala wyświetlanie okna dialogowego informacji o turbinach wiatrowych.

  3. Naciśnij przycisk, który teleportuje uczestnika od podstaw do platformy dołączonej do generatora turbiny wiatrowej, gdzie mogą zbadać generator z bliska.

Następne kroki