Sdílet prostřednictvím


Referenční informace k uzlu skriptování vizuálů

Přejít na článek přehledu skriptování vizuálů

V intervalu

V uzlu událostí intervalu

Uzel události On Interval aktivuje tok skriptu v pravidelných časových intervalech synchronizovaných napříč všemi klienty ve stejné místnosti.

  • Interval: Interval (v sekundách) mezi událostmi.
  • Zpoždění: Zpoždění (v sekundách) před první událostí. Můžete ho použít k prokládání událostí se stejným intervalem aktivovanými různými uzly Interval .

Při změně stavu

Při připojování k uzlu události Get Variable

Uzel události On State Changed aktivuje, když některý z jejích vstupů změní jeho hodnotu. Jedná se o výkonný mechanismus, který umožňuje, aby skripty reagovaly na změny stavu způsobené interakcí uživatele nebo jinými vizuálními skripty, a to jak místně, tak i na jiných klientech ve stejné místnosti.

  • Hodnoty: Určuje, kolik vstupních portů chcete sledovat. Současně lze sledovat až 10 vstupních portů. Při změně stavu se aktivuje, když některý z nich změní jeho hodnotu.
  • V 0, V 1 a dalších v této sekvenci: Vstupy pozorované pro změny stavu. K těmto vstupům můžete připojit libovolný datový uzel: Získat proměnnou nebo libovolnou vlastnost komponenty (instance nebo statická).
  • 0, Out 1 a další v této sekvenci: Výstupy odpovídající vstupům In 0 (a tak dále), které vracejí pozorované hodnoty.

Při pozorování proměnných skriptu nebo vlastností komponent, On State Changed obvykle funguje registrací odpovídajících zpětných volání interně, vyhnout se nutnosti neustále znovu vyhodnotit své vstupy. Pokud není k dispozici odpovídající zpětné volání, například v následujícím příkladu, uzel On State Changed se zčervená a panel Graph Inspectoru upozorní, že vstup nelze efektivně sledovat a je proto zakázaný:

Snímky obrazovky uzlu události Při změně stavu, který se připojuje k výsledku porovnání uzlu Get Variable s celočíselným literálem, bez dotazování

V tomto případě můžete na panelu Graph Inspectoru vybrat možnost Povolit dotazování, aby se změny při změně stavu vynutily tak, že neustále znovu vyhodnotíte jeho vstupy. Uzel uchovává žlutý pruh podél jeho horní části, aby vám připomněl, že pozoruje vstup za zvýšené náklady za běhu.

Snímky obrazovky uzlu události Při změně stavu, který se připojuje k výsledku porovnání uzlu Get Variable s celočíselným literálem, povolte dotazování.

Zobrazit dialog

Snímek obrazovky uzlu akce Zobrazit dialog

V uzlu Zobrazit dialog se zobrazí dialogové okno s vlastní zprávou a jedním nebo několika tlačítky, která uživateli umožní zavřít dialogové okno.

  • Text: Zpráva zobrazená v dialogovém okně Text zprávy bude v případě potřeby zalomený.
  • Tlačítka: Výběr tlačítek, která se mají uživateli prezentovat. Můžete zobrazit následující tlačítka: OK, Zrušit, Ano, Ne, Potvrdit, Další, Opakovat, Pokračovat, Opustit.
  • Výsledek: Název proměnné pro uložení odpovědi uživatele při zavření dialogového okna výběrem tlačítka. (Pokud je tato možnost prázdná, odpověď se zahodí.)
  • Cíl: GameObject s komponentou Variables pro uložení odpovědi uživatele.

Pokud je definována proměnná výsledku, bude resetována na prázdný řetězec hned po zadání uzlu Zobrazit dialogové okno a nastavit odpověď uživatele asynchronně, když uživatel vybere tlačítko pro zavření dialogového okna. Uložená hodnota je nelokalizovaný popisek tlačítka ze seznamu výše. Pomocí uzlu události Při změně stavu můžete reagovat na odpověď uživatele, například v následujícím příkladu:

Snímek obrazovky uzlu Zobrazit dialog, který shromažďuje odpověď uživatele v proměnné, následovaný uzlem Při změně stavu, který reaguje na změnu proměnné

Proměnná výsledku může být místní nebo sdílená. Pokud je sdílená, odpověď uživatele se odešle všem klientům ve stejné místnosti a uzel události On State Changed se aktivuje na všech klientech, aby reagoval na odpověď uživatele.

Uzly událostí fyziky

Uzly fyzikálních událostí při triggeru Enter, Při ukončení triggeru, Při kolizi Enter a Při ukončení kolizí jsou spolehlivě síťové. Ve výchozím nastavení se tyto události spolehlivě aktivují na všech klientech v místnosti; Pokud je však fyzika, kterou tyto uzly událostí pozorují, v oboru komponenty Local Physics Scope , události spolehlivě aktivují právě na jednom klientovi. To umožňuje tokům skriptu, které se aktivují, spolehlivě číst a zapisovat sdílený stav (například aktualizovat proměnnou sdíleného skóre).

Zabezpečení

Mesh chrání uživatele před hrozbami, jako jsou tyto:

  • Ohrožený obsah scény – například škodlivé pokusy o přístup k citlivým místním datům.
  • Ohrožený klient nebo přenosový kanál – například škodlivé pokusy o čtení nebo zápis nepřístupných vzdálených dat na jiných klientech.

Aby toho bylo dosaženo, mesh spouští vizuální skripty v sandboxu (například JavaScript ve webovém prohlížeči).

Při spuštění scény používá Mesh kurátorovaný seznam povolených k ověření vizuálních skriptů k omezení přístupu k určitým typům komponent Unity a bezpečné podmnožině jejich vlastností.

Při běhu scény omezuje Mesh přístup k určitým částem scény:

  • Místně: Zabráněním přístupu k interním sítím a dalším citlivým datům.
  • Vzdáleně: kontrolou, že autor scény hodlá tuto část scény upravit. To se provádí statickou analýzou vizuálních skriptů na straně příjemce pro jejich potenciální scény zápisů.

Příklady:

  • Škodlivý místní vizuální skript chce dát všem avatarům bobble hlavy. Za tímto účelem se pokusí prohledat celou scénu pro GameObjects, které představují hlavy avatarů. Síť automaticky filtruje výsledky skenování, aby se vyloučil systém avatarů.
  • Škodlivý vzdálený klient chce odvrátit scénu tak, že překlopí všechny Objekty GameObject vzhůru nohama. Aby toho bylo dosaženo, odešle aktualizaci vlastnosti, která nastaví vertikální měřítko každého Objektu GameObject ve scéně. Vzhledem k tomu, že žádný vizuální skript na přijímajícím klientovi není navržený tak, aby udělal něco takového, místní klient ignoruje vzdálený vstup.

Viz také