Sdílet prostřednictvím


Kurz Mesh 101 – kapitola 3: Přidání interaktivity pomocí vizuálního skriptování mesh



Poznámka:

Pravidelně aktualizujeme sadu nástrojů Mesh a toto video nemusí odrážet všechny nejnovější změny. Obsah tohoto článku byste měli zobrazit jako zdroj pravdy.

Teď, když jsme dokončili fázi nastavení, pojďme přejít k interaktivnímu vytváření objektů GameObjects. V této kapitole se podíváme na skriptování vizuálů Mesh, které můžete použít k přidání vlastní logiky do prostředí.

Poznámka:

  • Existují dva typy skriptování Mesh: Mesh Cloud Scripting, který používá kód jazyka C# a Skriptování vizuálů mesh, kde vytvoříte graf skriptu a pak přidáte uzly (označované také jako jednotky) v sekvenci k vytvoření logiky kódování. Tato verze kurzu Mesh 101 používá skriptování vizuálů Mesh; předchozí verze používala skriptování Cloud Mesh.

  • Skriptování mesh není nutné pro každé prostředí, ale budete ho potřebovat pro funkce, které zde přidáme: interaktivní vytváření tlačítka, aktivace informačního textu a teleportování kolem scény.

Stanice 3.1: Vytvoření interagovatelného tlačítka

Pro náš první úkol chceme vytvořit tlačítko, které přehraje video, když ho stiskne avatar. Avatar pak může video zastavit stisknutím stejného tlačítka.

  • V okně Scéna přejděte na Terasu Sphere, která obsahuje stanice kapitoly 3, a upravte zobrazení tak, abyste se dívali na první stanici, 3.1 – Přehrávání videa, jak je znázorněno níže.

Snímek obrazovky s oknem přehrávání videa v okně scény Unity zobrazující první stanici v prostředí

Jak vidíte, už je na místě obrazovka videa, ale potřebuje tlačítko Přehrát/Zastavit. Jak je vysvětleno v textovém poli stanice, vytvoříme graf skriptu s určitou logikou tlačítka, aby bylo možné tlačítko použít k zapnutí a vypnutí VideoPlayeru a změně textu tlačítka.

Přidání tlačítka do scény

  1. V Unity se ujistěte, že objekt GameObject s názvem Kapitola3 a jeho podřízený objekt s názvem 3.1 - Video jsou rozbalené.

    Snímek obrazovky s hierachy Unity zobrazující rozbalené složky s kapitolou 3 a 3.1 Video

  2. V okně Projektu vyhledejte prefab ButtonBase. Ujistěte se, že jste pro filtr hledání zvolili ALL.

    Snímek obrazovky s hledaným termínem Buttonbase v okně Projektu v Unity

  3. Přetáhněte ButtonBase z okna Projektu a potom ho v hierarchii přesuňte na GameObject s názvem 3.1 – Video tak, aby ButtonBase byla umístěna jako podřízená položka 3.1 – Video.

    Snímek obrazovky Buttonbase přetažen do hierarchie a přidaný do Objektu GameObject s názvem 3.1 – Video

    Ujistěte se, že hodnoty Pozice transformace>pro ButtonBase jsou 0, 0, 0.

    ButtonBase se umístí do scény o něco nižší než tam, kde ji chceme. Pojďme to opravit.

  4. Ujistěte se, že je v hierarchii vybrána funkce ButtonBase.

  5. V inspektoru změňte hodnotu Pozice>transformace>Y na 1.

Skvělé! ButtonBase je teď správně umístěný přímo pod obrazovkou videa.

Snímek obrazovky Unity znázorňující ButtonBase pod objektem BackplateBase

Přejmenování tlačítka

  • Při výběru ButtonBase v inspektoru změňte název ButtonBase na PlayVideoButton.

    Snímek obrazovky Unity s tlačítkem ButtonBase přejmenovaným na PlayVideButton

Změna popisku tlačítka

Text na tlačítku teď říká Popisek. Pojďme to změnit na "Přehrát".

  1. V hierarchii rozbalte PlayVideoButton GameObject, aby se zobrazilo jeho podřízené objekt Tlačítko, potom rozbalte Tlačítko zobrazte své podřízené objekty a pak vyberte podřízený objekt Label.

    Snímek obrazovky Unity zobrazující hierarcchy se zvýrazněným popiskem tlačítka

  2. V inspektoru přejděte na TextMeshPro – textová komponenta a potom v poli Textové zadání změňte text na "Přehrát".

    Snímek obrazovky Unity zobrazující inspektor popisku tlačítka se zvýrazněným textem Přehrát

Vytvoření vizuálního skriptu pro tlačítko

  1. V hierarchii se ujistěte, že je vybraná možnost PlayVideoButton.

  2. V inspektoru klepněte na tlačítko Přidat komponentu a pak vyberte skriptovací počítač.

    Všimněte si, že v inspektoru byly přidány dvě nové komponenty: Skriptovací počítač a proměnné. V dolní části inspektoru je také nové okno s názvem Mesh Visual Scripting Diagnostics. Toto okno vám poskytne zpětnou vazbu k vizuálnímu skriptu a může být užitečné pro řešení potíží.

    Snímek obrazovky Unity se dvěma přidanou komponentou, skriptovacím počítačem a proměnnými

  3. Všimněte si, že v komponentě Skriptovací počítač je možnost Zdroj nastavena na Graph. Pro zdroj máte dvě možnosti: Graf a Vložení. Každá má výhody a nevýhody. Pro naše skripty zvolíme Graf , protože skript Graphu se uloží jako samostatný soubor a tím získáte větší flexibilitu.

    Tip

    Graf a vložení jsou podrobněji popsány v článku o počítači skriptů Unity.

  4. V komponentě Skriptovací počítač klikněte na tlačítko Nový .

  5. V okně Uložit graf vytvořte novou složku a přejmenujte ji na Skripty.

  6. Otevřete složku Scripts a potom do textového pole Název souboru zadejte "PlayVideoButton".

  7. Až budete hotovi, klikněte na tlačítko Uložit .

  8. V komponentě Skriptovací počítač zadejte název do pole Název grafu: "Video Player".

  9. Do pole Souhrn grafu zadejte popis: "Definuje, jak přehrávač videa reaguje na akce přehrávání nebo zastavení".

    __________________

Nastavení grafu skriptů

  1. V komponentě Skriptovací počítač klepněte na tlačítko Upravit graf. Otevře se okno Graf skriptu. Přetáhněte ho vedle karty Projekt a konzola , pokud tam ještě není, abychom viděli okno Graf skriptů a scény najednou.

    Snímek obrazovky Unity znázorňující zvýrazněnou komponentu Skriptovací počítač s otevřeným grafem skriptů

    Při přidávání uzlů můžete chtít v okně více místa; můžete kliknout na tlačítko se třemi tečky a potom vybrat Maximalizovat , abyste toho dosáhli, nebo klikněte na tlačítko Celá obrazovka v pravém horním rohu okna.

    Poznámka:

    Uzel se také nazývá jednotka skriptování vizuálu. V tomto kurzu budeme dál používat uzel termínu.

  2. Výchozí uzly OnStart a OnUpdate nepotřebujeme, odstraňte je.

Rozložení grafu skriptu

Graf skriptů bude mít dvě části:

Oddíl 1: Zjistí, kdy se na tlačítko Přehrát/Zastavit videopřehrávač klikne. Oddíl 2: Po kliknutí přehrajte video. Po dalším kliknutí zastavte video.

Tady je náhled toho, jak bude konečný výsledek vypadat:

_______________

Zjištění, jestli je tlačítko klikané

První část, která zjistí, jestli se na tlačítko klikne, bude vyžadovat tři uzly. GameObject v projektu, který skutečně naslouchá a reaguje na kliknutí, je tlačítko. Pojďme to přidat do grafu skriptu.

Vytvoření proměnné objektu button

  1. V hierarchii rozbalte PlayVideoButton.

  2. V blackboardu grafu skriptu vytvořte novou proměnnou objektu: Do pole (Nový název proměnné) zadejte název "Tlačítko" a klikněte na tlačítko +.

    ________________

  3. Nastavte typ proměnné objektu na Game Object.

  4. Z hierarchie přetáhněte objekt GameObject tlačítka a potom ho přesuňte do pole Hodnota nové proměnné.

    ________________

  5. Přetáhněte proměnnou objektu button z tabule a potom ji přesuňte do grafu skriptu a přidejte ji jako uzel.

    ________________


TIP: Možná budete chtít chvíli trvat, než prozkoumáte některé součásti objektu GameObject tlačítka :

Interagovatelná instalace sítě: Tato komponenta vytvoří button objekt, se kterým můžete pracovat. Další informace najdete v tématu Grab, hold and throw with Interactables.To learn more, see Grab, hold and throw with Interactables.

Snímek obrazovky Unity znázorňující okno pro interakci se sítí a zahrnutými nastaveními

Skriptovací počítač: Toto má graf skriptů s názvem Základní chování tlačítka.

Snímek obrazovky Unity znázorňující okno chování Základní tlačítko pro skriptovací počítač

Pokud přejdete do režimu přehrávání, uvidíte, že do tlačítka se přidá nová komponenta s názvem Mesh Interactable Body.

Snímek obrazovky Unity znázorňující nový prvek Mesh Interagovatelné tělo přidané do komponenty Button

Tato komponenta se přidává automaticky za běhu do interagovatelných těl; zveřejňuje různé vlastnosti pro vizuální skriptování, jako je IsHovered a IsSelected, což bude užitečné za chvíli.


V grafu skriptu přidáme uzel, který nám dá vědět, kdy je tlačítko vybrané.

  1. Pokud potřebujete, ukončete režim přehrávání a pak v hierarchii vyberte Tlačítko PlayVideoButton, abyste měli jistotu, že se v okně Graf skriptu zobrazuje jeho graf.

  2. V grafu skriptů klikněte na port outportu uzlu Získat proměnnou objektu a uvolněte tlačítko myši. Tím se otevře Vyhledávání přibližných shod. UPOZORNĚNÍ: Jakmile otevřete Vyhledávání přibližných shod, neklikejte nikde mimo rozhraní Unity. Tím se zavře Vyhledávání přibližných shod a způsobí nepředvídatelné chování v grafu skriptu.

    Snímek obrazovky s popisem přehrávání videa

  3. Vyhledejte možnost Je vybrána a pak v seznamu vyberte Interagovatelné tělo sítě: IsSelected.

    Snímek obrazovky s popisem přehrávání videa

    Poznámka: Tento uzel vypíše logickou hodnotu. To můžete potvrdit v Nástroji Graph Inspector.

  4. Přetáhněte spojnici z výstupního portu uzlu Je vybrána a pak vytvořte nový uzel s názvem Microsoft Mesh: Při změně stavu. (Ve Vyhledávání přibližných shod vyhledejte změněný stav.)

    Snímek obrazovky s popisem přehrávání videa

Toto jsou naše tři uzly detekce kliknutí na tlačítko. Uzel Je vybrán začíná hodnotou False, ale po kliknutí na tlačítko se hodnota změní na True a předá se do uzlu Při změně stavu. Tento uzel pak aktivuje uzly play/stop, které přidáme dále.

Přehrávání nebo zastavení videa

Pokud má při změně stavu hodnotu true, video se přehraje. Pokud se už přehrává a tlačítko se stiskne, změní se při změně stavu na hodnotu false a video se přestane přehrávat. To má vliv na uzly v oddílu 2 grafu skriptu, který brzy přidáme, abychom poskytli video a obrázek, který se dá zobrazit.

Dalším krokem je přidání uzlu if k určení toku.

  1. Přetáhněte spojnici z výstupního portu ovládacího prvku uzlu Při změně stavu a pak vytvořte nový uzel if . (Ve Vyhledávání přibližných shod vyhledejte if.)

    Snímek obrazovky s popisem přehrávání videa

  2. Přetáhněte spojnici z portu Výstup dat uzlu Při změně stavu na port Vstup dat uzlu if .

    Snímek obrazovky s popisem přehrávání videa

Vytvoření proměnné pro určení, jestli se video přehrává nebo ne

  1. V Blackboardu přejděte na kartu Object a pak vytvořte proměnnou s názvem "isPlaying". Zadejte "logická hodnota" a nechte políčko Hodnota nevybrané. To dává logické hodnotě výchozí hodnotu false.

    Snímek obrazovky s popisem přehrávání videa

  2. Přetáhněte proměnnou isPlaying do grafu skriptu a pak ji přesuňte vpravo od uzlu *If .

  3. Přetáhněte spojnici z portu Výstup ovládacího prvku True v uzlu If a pak vytvořte nový uzel Nastavit proměnnou objektu. (Ve Vyhledávání přibližných shod vyhledejte objekt set.).

    Snímek obrazovky s popisem přehrávání videa

  4. V uzlu Nastavit proměnnou objektu klikněte na rozevírací seznam název proměnné a pak vyberte isPlaying.

    Snímek obrazovky s popisem přehrávání videa

    Proměnná isPlaying musí zde provádět dvojité povinnosti. Abychom zajistili, že isPlaying má vždy správnou hodnotu, dáme jí vstup z uzlu Negate .

  5. Přetáhněte spojnici z dolního portu vstupu dat v uzlu Set Object Variable: isPlaying node a pak vytvořte nový uzel Negate . (Ve Vyhledávání přibližných shod vyhledejte negate.)

    Snímek obrazovky s popisem přehrávání videa

  6. Přetáhněte spojnici z portu vstupu dat uzlu Negate a pak vytvořte nový uzel Get Object Variable . (Ve Vyhledávání přibližných shod vyhledejte proměnnou objektu get.)

  7. V uzlu Získat proměnnou objektu klikněte na rozevírací seznam název proměnné a pak vyberte isPlaying.

    Snímek obrazovky s popisem přehrávání videa

Uzel Negate změní hodnotu IsPlayingu na opak toho, co je aktuálně nastavené. Při spuštění scény je isPlaying false (výchozí). Když kliknete na tlačítko Přehrát/Zastavit, uzel Negate způsobí , že se v uzlu Nastavit proměnnou objektu nastaví na hodnotu true a tím se video přehraje. Když se tlačítko znovu klikne, uzel Negate způsobí resetování na false a tím se video zastaví.

Přehrání videa nebo zobrazení obrázku

Teď začneme vytvářet oddíl 2 grafu skriptu. Přidáte uzly, které zjistí, jestli se změny přehrávají . To určuje, jestli se má video přehrát, nebo zobrazit obrázek na webu WebSlate stanice 3.1.

  1. V dolní části grafu přidejte uzel Get Object Variable a nastavte jeho hodnotu na isPlaying. (V grafu můžete kliknout pravým tlačítkem myši a pak vybrat Přidat uzel Vyhledejte objekt get.)

    Snímek obrazovky s popisem přehrávání videa

  2. Přetáhněte spojnici z výstupního datového portu proměnné Get Object: isPlaying node a pak vytvořte nový uzel On State Changed . (Ve Vyhledávání přibližných shod vyhledejte změněný stav.)

    Snímek obrazovky s popisem přehrávání videa

  3. Přetáhněte spojnici z výstupního portu ovládacího prvku uzlu Při změně stavu a pak vytvořte nový uzel If . (Ve Vyhledávání přibližných shod vyhledejte if.)

  4. Přetáhněte konektor z výstupního datového portu uzlu On State Changed a pak ho připojte k portu Vstup dat uzlu if .

    Snímek obrazovky s popisem přehrávání videa

Herní objekty Video a VideoStill (obrázek)

  1. V hierarchii rozbalte VideoPlayer GameObject a všimněte si, že má dva podřízené objekty: Video a VideoStill.

  2. Vyberte Video a potom v inspektoru si všimněte následujících věcí:

    • Video obsahuje komponentu s názvem Video Player, která má odkaz na video větrnou turbínu.

    • Video je neaktivní (zaškrtávací políčko vedle názvu je prázdné).

  3. V hierarchii vyberte VideoStill GameObject a pak v inspektoru si poznamenejte následující:

    • VideoStill má stále připojený obrázek.

    • VideoStill je aktivní (je zaškrtnuté políčko vedle názvu).

    Snímek obrazovky s popisem přehrávání videa

Při spuštění scény se na obrazovce videa zobrazí stále obrázek (kvůli aktivní funkci VideoStill) a nepřehrá video (což je způsobeno neaktivním videem). Když účastník při zobrazení přehrávání stiskne tlačítko Přehrát/Zastavit, aktivuje video, což způsobí, že video se přehraje a současně videoStill neaktivní, čímž se obrázek stále skryje. Popisek tlačítka se také změní z přehrání na Zastavit, když účastník znovu stiskne tlačítko, video se změní na neaktivní, zastaví video a VideoStill se znovu aktivuje, čímž se obrazovka videa znovu zobrazí na obrázku.

Zbývající uzly v našem grafu to všechno dělají.

Vytvoření proměnných objektů Video a VideoStill (obrázek)

Pojďme vytvořit proměnné objektu, které obsahují hodnoty pro Video a VideoStill GameObjects.

  1. V hierarchii rozbalte VideoPlayer.

  2. V blackboardu grafu skriptu vytvořte novou proměnnou objektu: Do pole (Nový název proměnné) zadejte název "Video" a klikněte na tlačítko +.

  3. Nastavte typ proměnné objektu na Game Object.

  4. Z hierarchie přetáhněte objekt Video GameObject a potom ho přesuňte do pole Hodnota nové proměnné.

    ________________

  5. V blackboardu vytvořte novou proměnnou objektu: Do pole (Nový název proměnné) zadejte název "VideoStill" a klikněte na tlačítko +.

  6. Nastavte typ proměnné objektu na Game Object.

  7. Z hierarchie přetáhněte VideoStill GameObject a pak ho přesuňte do pole Hodnota nové proměnné.

    ________________

Struktura grafu skriptu

Toto je dobré místo, kde se můžete zastavit a zvážit, jak chceme navrhnout zbytek oddílu 2 našeho grafu skriptů. Náš uzel If se rozvětvuje v toku "true" a "false" tok. Naše proměnné objektů musí být pro oba toky snadno přístupné, takže je umístíme na řádek mezi toky, jak je znázorněno tady:

________________

Přidání proměnných objektů Video a VideoStill do grafu skriptu

  1. Přetáhněte proměnnou objektu videa z blackboardu a potom ji přesuňte do grafu skriptu a přidejte ji jako uzel. Umístěte ho pod uzel If .

    ________________

  2. Přetáhněte proměnnou objektu VideoStill z Blackboardu a potom ji přesuňte do grafu skriptu a přidejte ji jako uzel. Umístěte ho napravo od proměnné Get Object: Video node.

    ________________

Zapnutí videa

  1. Přetáhněte spojnici z výstupního portu ovládacího prvku True uzlu If a pak vytvořte nový herní objekt: Nastavit aktivní uzel. (Ve Vyhledávání přibližných shod vyhledejte sadu aktivní.)

  2. Přetáhněte konektor z portu Výstup dat proměnné Get Object: Video node a pak ho připojte k prvnímu portu pro vstup dat herního objektu : Nastavit aktivní uzel.

  3. Zaškrtněte políčko Hodnota uzlu, které uzel aktivuje.

    ____________

  4. Přetáhněte konektor z portu Výstup dat na uzlu Získat objektovou proměnnou: uzel VideoStill a pak ho připojte k prvnímu portu pro vstup dat herního objektu : Nastavte aktivní uzel, který jste právě vytvořili.

    Snímek obrazovky s popisem přehrávání videa

  5. Nezaškrtávejte políčko Hodnota uzlu. Tím se zajistí, že uzel je neaktivní.

    Když na tlačítko kliknete, video se přehraje a obrázek zůstane skrytý. V této sekvenci potřebujeme ještě jednu věc. Vzhledem k tomu, že je tlačítko Přehrát/Zastavit přepínací tlačítko, musíme se ujistit, že po kliknutí na tlačítko Přehrát se popisek tlačítka změní na Zastavit a po dalším kliknutí se popisek změní zpět na Přehrát. Abychom toho dosáhli, musíme vytvořit a přidat proměnnou objektu a pak přidat uzel TextMeshPro .

Vytvoření a přidání proměnné objektu Label

  1. V hierarchii se ujistěte, že tlačítko PlayVideoButton a jeho podřízeného objektu jsou rozbalené.

    ________________

  2. V tabuli Graph Script Graph vytvořte novou proměnnou objektu: Do pole (Nový název proměnné) zadejte název Popisek a klikněte na tlačítko +.

  3. Nastavte typ proměnné objektu na Game Object.

  4. Z hierarchie přetáhněte objekt GameObject Label a potom ho přesuňte do pole Hodnota nové proměnné.

    ________________

  5. Přetáhněte proměnnou objektu Popisek z tabule a potom ji přesuňte do grafu skriptu a přidejte ji jako uzel. Umístěte ho napravo od uzlu Get Object Variable: VideoStill .

    ________________

Přidání uzlu Text Mesh Pro

  1. Přetáhněte spojnici z výstupního portu ovládacího prvku herního objektu : Nastavte aktivní uzel a pak vytvořte nový text mesh Pro: Nastavit textový uzel. (Ve Vyhledávání přibližných shod vyhledejte nastavený text.) Umístěte ho na horní řádek napravo od herního objektu : Nastavit aktivní uzel.

    Snímek obrazovky s popisem přehrávání videa

  2. Přetáhněte spojnici z portu Výstup dat proměnné objektu Get: Uzel Popisek a pak ho připojte k hornímu portu pro zadávání dat na objektu Text Mesh Pro: Nastavení textového uzlu.

  3. Do textového pole uzlu zadejte "Stop".

    Snímek obrazovky s popisem přehrávání videa

Přidání uzlů pro zastavení videa

Jen tři další uzly pro tento graf! Musíme nastavit podmínku false pro tlačítko, takže pokud je tlačítko při přehrávání videa kliknuto, proměnná isPlaying se změní na false a způsobí, že se video zastaví a popisek tlačítka se změní na Přehrát znovu.

Tady můžeme udělat zástupce.

  1. Control-click the three nodes in the top row that make the "if true" flow.

    Snímek obrazovky s popisem přehrávání videa

  2. Klikněte pravým tlačítkem na graf skriptu a v místní nabídce vyberte Duplikovat výběr.

  3. Přetáhněte duplicitní uzly v grafu dolů a umístěte je pod řádek proměnných.

    Snímek obrazovky s popisem přehrávání videa

Nastavení uzlů if false

  1. Přetáhněte konektor z portu Výstup dat proměnné Get Object: Uzel Video a pak ho připojte k hornímu portu pro vstup dat prvního herního objektu: Nastavte aktivní uzel v dolním řádku uzlů.

    Snímek obrazovky s popisem přehrávání videa

  2. Ve stejném prvním herním objektu: Nastavte aktivní uzel, zrušte výběr hodnoty.

  3. Přetáhněte konektor z portu Výstup dat na uzlu Získat objektovou proměnnou: uzel VideoStill a pak ho připojte k hornímu portu pro vstup dat druhého objektu Game: Nastavte aktivní uzel v dolním řádku uzlů.

  4. V druhém herním objektu: Nastavte aktivní uzel a vyberte Hodnotu.

  5. Přetáhněte spojnici z portu Výstup dat proměnné Get Object: Uzel Popisek a pak ho připojte k hornímu portu pro zadávání dat textové sítě Pro: Nastavte uzel Text napravo.

  6. Ve stejné textové síti Pro: Nastavte textový uzel, změňte text ze stop na Přehrát.

  7. Přetáhněte konektor z výstupního portu ovládacího prvku False uzlu If a pak ho připojte k vstupnímu portu ovládacího prvku prvního herního objektu: Nastavte aktivní uzel v dolním řádku uzlů.

    Snímek obrazovky s popisem přehrávání videa

Sdílení interakcí přehrávače videa s ostatními uživateli v prostředí

Někdy může docházet k tomu, že chcete, aby události skriptu byly zaznamenány pouze účastníky, kteří události aktivují, a jindy, když chcete, aby události zažili všichni ve scéně. Můžete to řídit pomocí komponenty Místní rozsah skriptu.

  1. V hierarchii se ujistěte, že je vybraná možnost PlayVideoButton.

  2. V inspektoru klikněte na tlačítko Přidat komponentu a potom přidejte obor místního skriptu.

    Snímek obrazovky s popisem přehrávání videa

V tomto kurzu chceme, aby všichni účastníci v prostředí viděli všechny interakce s přehrávačem videa a viděli samotné video přehrát a pozastavit. Abyste to zajistili, ujistěte se, že je vybraná možnost Sdílet proměnné vizuálního skriptu na této možnosti Herní objekt . V informačním poli pod touto možností se dozvíte, co je sdílené a co zůstává místní.

Snímek obrazovky s popisem přehrávání videa

Otestování práce

  1. V Unity uložte projekt a stiskněte tlačítko Přehrát v Unity Editoru.

  2. V okně Hra klikněte pod přehrávačem videa na tlačítko Přehrát . To způsobí, že se popisek na tlačítku změní na Stop a krátké video o větrných turbínách, které se přehrají na obrazovce nad tlačítkem.

    Snímek obrazovky s popisem přehrávání videa

  3. Až budete video sledovat, stiskněte tlačítko, které jste upravili znovu (teď má popisek Zastavit).

  4. Stisknutím tlačítka Přehrát v Unity Editoru ukončete režim přehrávání.

Stanice 3.2: Aktivace dialogového okna s informacemi

Pro tuto funkci vylepšíme existující vizuální skript, který způsobí, že se zobrazí dialogové okno s informacemi, když avatar stiskne tlačítko.

  1. V hierarchii sbalte objekt 3.1 – Video GameObject.

  2. V okně Scéna si všimněte, že informační dialog aktivační stanice je napravo od stanice přehrávání videa 3.1. Upravte zobrazení tak, abyste jasně viděli stanici 3.2.

    Snímek obrazovky s popisem počítače

  3. V inspektoru rozbalte GameObject s názvem 3.2 -- Informační dialog.

  4. V hierarchii vyberte InfoButtonWrapper.

    Snímek obrazovky 3.2 – Info_Dialog hierarchii GameObject s vybranou Information_Button

    V inspektoru si všimněte, že InfoButtonWrapper má připojenou komponentu Local Script Scope a že její proměnné vizuálního skriptu Sdílet v této možnosti Herní objekt není zaškrtnuté.

    Snímek obrazovky 3.2 – Info_Dialog hierarchii GameObject s vybranou Information_Button

    Důvodem je to, že když účastník klikne na tlačítko, které zobrazí dialogové okno s informacemi, tlačítko se mu skryje. Pokud je tato možnost vybraná, tlačítko se všem uživatelům ve scéně skryje a my to nechceme.

  5. V inspektoru přejděte na komponentu Skriptovací počítač, která obsahuje graf Zobrazit dialog, a potom klikněte na tlačítko Upravit graf grafu.

    Snímek obrazovky inspektoru Information_Button

  6. V grafu přetáhněte spojnici z portu Výstup ovládacího prvku True v uzlu If a pak vytvořte nový Microsoft Mesh: Zobrazit dialogový uzel . (Ve Vyhledávání přibližných shod vyhledejte dialogové okno pro zobrazení.)

    Snímek obrazovky s uzlem If connect to the new Show Dialog node.

  7. V uzlu Zobrazit dialogové okno klikněte na pole Zpráva a potom nahraďte slovo Zpráva touto větou:

    Věděli jste, že největší větrná turbína na světě má kotouče delší než fotbalové hřiště?

    Toto je zpráva, která se zobrazí v dialogovém okně s informacemi.

    Snímek obrazovky zobrazující uzel Zobrazit dialog s přidanou zprávou

  8. Vyberte rozevírací seznam, který aktuálně zobrazuje OK, a potom v místní nabídce zrušte výběr OK a vyberte Pokračovat. Tím přidáte tlačítko Pokračovat do dialogového okna s informacemi, na které uživatel může po dokončení čtení zprávy kliknout.

    Snímek obrazovky zobrazující uzel Zobrazit dialog s přidanou zprávou

Otestování práce

  1. V Unity Editoru uložte projekt a stiskněte tlačítko Přehrát v Unity Editoru.

  2. Pomocí navigačních kláves můžete avatara vrátit zpět od tlačítka. Všimněte si, že když je váš avatar určitou vzdálenost daleko, tlačítko se otočí a není možné ho vybrat.

  3. Jděte směrem k tlačítku. V určitém okamžiku tlačítko přestane otáčet a signalizovat, že ho teď můžete vybrat.

  4. Vyberte tlačítko . Zobrazí se dialogové okno s informacemi a zobrazí zprávu, kterou jste přidali do uzlu Zobrazit dialogové okno dříve.

    Poznámka:

    Vzhled informačního dialogového okna v režimu přehrávání se liší od toho, jak se zobrazí v síti, kde se bude zobrazovat podobně jako ostatní panely na terase Sphere.

  5. Po dokončení dialogového okna s informacemi klikněte na tlačítko Pokračovat . Všimněte si, že po kliknutí na tlačítko zmizí. Chcete-li tlačítko znovu použít, musíte ukončit a pak znovu přejít do režimu přehrávání.

    Tip

    Vzdálenost a aktivační prvky, které se zde projeví, jsou určeny komponentami ProximityDetector GameObject.

    Snímek obrazovky znázorňující objekt GameObject bezkontaktní komunikace v hierarchii

  6. Stisknutím tlačítka Přehrát v Unity Editoru ukončete režim přehrávání.

Stanice 3.3: Teleport do generátoru turbín

Pro tuto funkci přidáme některé uzly do grafu skriptu, který účastníkům ve scéně umožňuje teleportovat. Když účastník stiskne tlačítko, přepojí se z aktuální polohy na stanici 3.3 na zvýšenou platformu připojenou k generátoru větrných turbín. Pak mohou prozkoumat generátor.

Obrázek obsahující venkovní text, snímek obrazovky, popis větrných mlýnů automaticky vygenerovaný

Aktualizace grafu skriptů

  1. V okně scény si všimněte, že teleport do turbínové stanice je napravo od stanice 3.2 - Informační dialog aktivační stanice. Upravte zobrazení tak, abyste jasně viděli stanici 3.3.

  2. V hierarchii sbalte objekt GameObject 3.2 – Info Dialog a pak rozbalte objekt 3.3 - Teleport GameObject.

    Snímek obrazovky

    Tlačítko je pro vás všechno nastavené--- stačí přidat uzly v grafu skriptů, které mu poskytnou chování teleportu.

  3. V hierarchii rozbalte KapitolaLabel GameObject a pak vyberte TeleportToWindTurbineButton GameObject.

    Snímek obrazovky

    Všimněte si, že v inspektoru je komponenta Script Machine s názvem Teleport to Location s připojeným skriptem TeleportToLocationButtonStart. Možnost Zdroj je nastavená na Graph, což znamená, že graf skriptu je uložen v projektu jako nezávislý soubor.

    Snímek obrazovky

  4. Klikněte na tlačítko Upravit graf . Stejně jako v předchozí kapitole už náš graf obsahuje několik uzlů, které jsou pro vás nastavené.

    Snímek obrazovky

Do tohoto grafu skriptů přidáme uzly za chvíli.

Vytvoření cestovního bodu a přidání odkazu na něj

Takže co je "Cestovní bod", možná se ptáte ... ? V podstatě se jedná o komponentu, pomocí které můžete definovat bod v prostoru pro vytvoření nebo teleportování. Za normálních okolností byste nejprve vytvořili cestovní skupinu a pak do ní přidali jeden nebo více cestovních bodů. V tomto projektu jsme už vytvořili cestovní skupinu, takže v následujících krocích přidáme do této skupiny cestovní bod. Pak použijeme tento cestovní bod jako místo, kam avatar přejde, když klikne na tlačítko Teleport . Další informace najdete v našem článku s názvem Vytvořit avatar spawn a teleport body.

  1. V hierarchii vytvořte nový prázdný GameObject jako podřízený objekt pro TravelGroup a pak ho přejmenujte "TeleportLocationWindTurbine".

    Snímek obrazovky

  2. V inspektoru klikněte na tlačítko Přidat součást a vyhledejte a přidejte komponentu Travel Point.

    Snímek obrazovky

  3. V inspektoru zadejte v komponentě Transform následující hodnoty:

    Position (Pozice):

    X = 6
    Y = 56
    Z = 60

    Otočení:

    X = 0
    Y = 255
    Z = 0

    Snímek obrazovky

    Avatar bude teleportovat do tohoto umístění.

  4. V inspektoru, aby TeleportLocationWindTurbine GameObject neaktivní zrušením zaškrtnutí políčka vedle jeho názvu. Pokud máte za běhu aktivních více objektů TravelPoint, Unity náhodně vybere jeden z aktivních cestovních bodů jako bod pro vytváření avataru. Chceme zajistit, aby avatar vytvořil v bodě určeném TeleportLocationChapter3 GameObject, takže by měl být jediným aktivním cestovním bodem. V důsledku nečinnosti se TeleportLocationWindTurbine v hierarchii zobrazuje šedě.

    Snímek obrazovky

Vytvoření a přidání proměnné objektu teleportu

  1. V tabuli Script Graph Blackboard vytvořte novou proměnnou objektu: Do pole (Nový název proměnné) zadejte název TeleportLocation a klikněte na tlačítko +.

  2. Nastavte typ proměnné objektu na Game Object.

  3. Z hierarchie přetáhněte TeleportLocationWindTurbine GameObject a pak ho přesuňte do pole Hodnota nové proměnné.

    ________________

  4. Přetáhněte proměnnou objektu button z tabule a potom ji přesuňte do grafu skriptu a přidejte ji jako uzel. Umístěte ho pod uzel If .

    ________________

Přidání teleportových uzlů

  1. Přetáhněte spojnici z portu ovládacího prvku výstupu True uzlu If a pak vytvořte nový uzel s názvem Game Object: Nastavit aktivní. (Ve Vyhledávání přibližných shod vyhledejte sadu aktivní.)

  2. Přetáhněte spojnici z portu Výstup dat proměnné Get Object: Uzel TeleportLocation a pak ho připojte k prvnímu portu Vstup dat herního objektu : Nastavit aktivní uzel.

    Snímek obrazovky

  3. Vyberte možnost Hodnota uzlu, aby byla aktivní.

Přidání uzlu Cestovní bod

  1. Přetáhněte spojnici z výstupního portu ovládacího prvku herního objektu : Nastavte aktivní uzel a pak vytvořte nový uzel s názvem Cestovní bod: Cestování do bodu. (Ve Vyhledávání přibližných shod vyhledejte cestovní bod: cestování.)

  2. Přetáhněte spojnici z portu Výstup dat proměnné Get Object: Uzel TeleportLocation a pak ho připojte k portu Vstup dat cestovního bodu: Cesta do uzlu Bod .

    Snímek obrazovky

Tím se graf dokončí.

Otestování práce

  1. V Unity Editoru uložte projekt a stiskněte tlačítko Přehrát v Unity Editoru.

  2. Přejděte na stanici 3.3 a potom klikněte na tlačítko Teleport a teleportujte do generátoru větrných turbín.

    Snímek obrazovky

    Snímek obrazovky s automaticky vygenerovaným popisem počítače

  3. V poli Informace o generátoru 3.3 vyberte tlačítko Zobrazit nebo skrýt generátor. Otevře se okno na straně větrné turbíny a uvidíte generátor uvnitř.

    Snímek obrazovky počítače s popisem počítače

Neváhejte přejít blíž k generátoru a podívat se. Je to docela cool! Až budete hotovi, vraťte se zpět a stiskněte tlačítko Zobrazit nebo skrýt generátor . Tím okno zavřete.

Přejít na kapitolu 4

V tomto okamžiku by účastník prostředí byl připraven přejít k kapitole 4 a dozvědět se o aktivitách větrných turbín souvisejících s fyzikou. Stejně jako u kapitoly 3 je terasa Sphere, která obsahuje stanice pro kapitolu 4. Chcete-li sem přejít:

  1. Otočte se v opačném směru od generátoru větrné turbíny a přejděte k informačnímu rámečku 3.3 -- Přejděte do informačního pole kapitola 4 .

    Snímek obrazovky s popisem počítače

  2. Stiskněte tlačítko Teleport do kapitoly 4.

    Snímek obrazovky s popisem počítače

    Jak je inzerováno, to umístí avatar před stanice kapitoly 4 a Mesh Fyzika.

    Obrázek obsahující text, snímek obrazovky, multimediální software, popis grafického softwaru automaticky vygenerovaný

Kapitola 3: Souhrn

V této kapitole jste pomocí vizuálního skriptování mesh přidali funkce, které účastníkům umožňují provádět následující akce:

  1. Stiskněte tlačítko, které způsobí přehrávání vzdělávacího videa o větrných turbínách.

  2. Stiskněte tlačítko, které aktivuje zobrazení dialogového okna s informacemi o větrných turbínách.

  3. Stiskněte tlačítko, které přenese účastníka od základů na platformu připojenou k generátoru větrných turbín, kde může prozkoumat generátor blíže.

Další kroky