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.
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
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é.
V okně Projektu vyhledejte prefab ButtonBase. Ujistěte se, že jste pro filtr hledání zvolili ALL.
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.
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.
Ujistěte se, že je v hierarchii vybrána funkce ButtonBase.
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.
Přejmenování tlačítka
Při výběru ButtonBase v inspektoru změňte název ButtonBase na PlayVideoButton.
Změna popisku tlačítka
Text na tlačítku teď říká Popisek. Pojďme to změnit na "Přehrát".
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.
V inspektoru přejděte na TextMeshPro – textová komponenta a potom v poli Textové zadání změňte text na "Přehrát".
Vytvoření vizuálního skriptu pro tlačítko
V hierarchii se ujistěte, že je vybraná možnost PlayVideoButton.
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íží.
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.
V komponentě Skriptovací počítač klikněte na tlačítko Nový .
V okně Uložit graf vytvořte novou složku a přejmenujte ji na Skripty.
Otevřete složku Scripts a potom do textového pole Název souboru zadejte "PlayVideoButton".
Až budete hotovi, klikněte na tlačítko Uložit .
V komponentě Skriptovací počítač zadejte název do pole Název grafu: "Video Player".
Do pole Souhrn grafu zadejte popis: "Definuje, jak přehrávač videa reaguje na akce přehrávání nebo zastavení".
Nastavení grafu skriptů
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.
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.
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
V hierarchii rozbalte PlayVideoButton.
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 +.
Nastavte typ proměnné objektu na Game Object.
Z hierarchie přetáhněte objekt GameObject tlačítka a potom ho přesuňte do pole Hodnota nové proměnné.
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.
Skriptovací počítač: Toto má graf skriptů s názvem Základní chování tlačítka.
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.
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é.
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.
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.
Vyhledejte možnost Je vybrána a pak v seznamu vyberte Interagovatelné tělo sítě: IsSelected.
Poznámka: Tento uzel vypíše logickou hodnotu. To můžete potvrdit v Nástroji Graph Inspector.
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.)
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.
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.)
Přetáhněte spojnici z portu Výstup dat uzlu Při změně stavu na port Vstup dat uzlu if .
Vytvoření proměnné pro určení, jestli se video přehrává nebo ne
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.
Přetáhněte proměnnou isPlaying do grafu skriptu a pak ji přesuňte vpravo od uzlu *If .
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.).
V uzlu Nastavit proměnnou objektu klikněte na rozevírací seznam název proměnné a pak vyberte isPlaying.
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 .
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.)
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.)
V uzlu Získat proměnnou objektu klikněte na rozevírací seznam název proměnné a pak vyberte isPlaying.
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.
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.)
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.)
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.)
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 .
Herní objekty Video a VideoStill (obrázek)
V hierarchii rozbalte VideoPlayer GameObject a všimněte si, že má dva podřízené objekty: Video a VideoStill.
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é).
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).
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.
V hierarchii rozbalte VideoPlayer.
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 +.
Nastavte typ proměnné objektu na Game Object.
Z hierarchie přetáhněte objekt Video GameObject a potom ho přesuňte do pole Hodnota nové proměnné.
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 +.
Nastavte typ proměnné objektu na Game Object.
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
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 .
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
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í.)
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.
Zaškrtněte políčko Hodnota uzlu, které uzel aktivuje.
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.
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
V hierarchii se ujistěte, že tlačítko PlayVideoButton a jeho podřízeného objektu jsou rozbalené.
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 +.
Nastavte typ proměnné objektu na Game Object.
Z hierarchie přetáhněte objekt GameObject Label a potom ho přesuňte do pole Hodnota nové proměnné.
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
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.
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.
Do textového pole uzlu zadejte "Stop".
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.
Control-click the three nodes in the top row that make the "if true" flow.
Klikněte pravým tlačítkem na graf skriptu a v místní nabídce vyberte Duplikovat výběr.
Přetáhněte duplicitní uzly v grafu dolů a umístěte je pod řádek proměnných.
Nastavení uzlů if false
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ů.
Ve stejném prvním herním objektu: Nastavte aktivní uzel, zrušte výběr hodnoty.
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ů.
V druhém herním objektu: Nastavte aktivní uzel a vyberte Hodnotu.
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.
Ve stejné textové síti Pro: Nastavte textový uzel, změňte text ze stop na Přehrát.
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ů.
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.
V hierarchii se ujistěte, že je vybraná možnost PlayVideoButton.
V inspektoru klikněte na tlačítko Přidat komponentu a potom přidejte obor místního skriptu.
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í.
Otestování práce
V Unity uložte projekt a stiskněte tlačítko Přehrát v Unity Editoru.
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.
Až budete video sledovat, stiskněte tlačítko, které jste upravili znovu (teď má popisek Zastavit).
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.
V hierarchii sbalte objekt 3.1 – Video GameObject.
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.
V inspektoru rozbalte GameObject s názvem 3.2 -- Informační dialog.
V hierarchii vyberte InfoButtonWrapper.
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é.
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.
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.
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í.)
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.
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.
Otestování práce
V Unity Editoru uložte projekt a stiskněte tlačítko Přehrát v Unity Editoru.
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.
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.
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.
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.
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.
Aktualizace grafu skriptů
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.
V hierarchii sbalte objekt GameObject 3.2 – Info Dialog a pak rozbalte objekt 3.3 - Teleport GameObject.
Tlačítko je pro vás všechno nastavené--- stačí přidat uzly v grafu skriptů, které mu poskytnou chování teleportu.
V hierarchii rozbalte KapitolaLabel GameObject a pak vyberte TeleportToWindTurbineButton GameObject.
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.
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é.
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.
V hierarchii vytvořte nový prázdný GameObject jako podřízený objekt pro TravelGroup a pak ho přejmenujte "TeleportLocationWindTurbine".
V inspektoru klikněte na tlačítko Přidat součást a vyhledejte a přidejte komponentu Travel Point.
V inspektoru zadejte v komponentě Transform následující hodnoty:
Position (Pozice):
X = 6
Y = 56
Z = 60Otočení:
X = 0
Y = 255
Z = 0Avatar bude teleportovat do tohoto umístění.
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ě.
Vytvoření a přidání proměnné objektu teleportu
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 +.
Nastavte typ proměnné objektu na Game Object.
Z hierarchie přetáhněte TeleportLocationWindTurbine GameObject a pak ho přesuňte do pole Hodnota nové proměnné.
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ů
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í.)
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.
Vyberte možnost Hodnota uzlu, aby byla aktivní.
Přidání uzlu Cestovní bod
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í.)
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 .
Tím se graf dokončí.
Otestování práce
V Unity Editoru uložte projekt a stiskněte tlačítko Přehrát v Unity Editoru.
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.
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ř.
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:
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 .
Stiskněte tlačítko Teleport do kapitoly 4.
Jak je inzerováno, to umístí avatar před stanice kapitoly 4 a Mesh Fyzika.
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:
Stiskněte tlačítko, které způsobí přehrávání vzdělávacího videa o větrných turbínách.
Stiskněte tlačítko, které aktivuje zobrazení dialogového okna s informacemi o větrných turbínách.
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.