Sdílet prostřednictvím


Referenční informace k uzlu Skriptování vizuálů sítě

Přejděte na článek Přehled vizuálního skriptování.

On Interval

On Interval – uzel události

Uzel události On Interval aktivuje tok skriptu v pravidelných časových intervalech synchronizovaných mezi 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ým různými uzly On Interval .

Při změně stavu

On State Changed node události connecting to a Get Variable node

Uzel události On State Changed (Při změně stavu ) se aktivuje, když některý z jeho vstupů změní jeho hodnotu. Jedná se o výkonný mechanismus, který umožňuje skriptům reagovat 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 pozorovat až 10 vstupních portů. Při změně stavu se aktivuje, když některá z nich změní svou hodnotu.
  • In 0, In 1 a more in this sequence: Vstupy pozorované pro změny stavu. K těmto vstupům můžete připojit libovolný datový uzel: Get Variable nebo libovolnou vlastnost komponenty (instance nebo static).
  • Out 0, Out 1 a další v tomto pořadí: Výstupy odpovídající vstupům In 0 (atd.), které vracejí pozorované hodnoty.

Při sledování proměnných skriptů nebo vlastností komponent funkce On State Changed obvykle funguje tak, že interně registruje příslušná zpětná volání, aby se nemuselo neustále přehodnocovat jejich vstupy. Pokud není k dispozici odpovídající zpětné volání jako v následujícím příkladu, uzel On State Changed (Při změně stavu ) zčervená a panel Graph Inspector (Kontrola grafu ) upozorní, že vstup nejde efektivně sledovat, a proto je zakázaný:

Snímky obrazovky uzlu události On State Changed (Při změně stavu) připojující se k výsledku porovnání uzlu Get Variable s celočíselným literálem bez dotazování.

V takovém případě můžete na panelu Graph Inspector vybrat Povolit cyklické dotazování a vynutit tak, že se změní stav, aby se zjistily změny tím, že neustále znovu vyhodnocujete jejich vstupy. Uzel si ponechá podél horní části žlutý pruh, který vám připomene, že pozoruje vstup se zvýšenými náklady za běhu.

Snímky obrazovky uzlu události On State Changed (Při změně stavu) připojující se k výsledku porovnání uzlu Get Variable s celočíselným literálem, který umožňuje dotazování.

Zobrazit dialogové okno

Snímek obrazovky uzlu akce Zobrazit dialog

Uzel Zobrazit dialog zobrazí dialogové okno s vlastní zprávou a jedním nebo několika tlačítky, která uživateli umožňují 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. Zobrazit lze následující tlačítka: OK, Zrušit, Ano, Ne, Potvrdit, Další, Opakovat, Pokračovat, Opustit.
  • Výsledek: Název proměnné, do které se uloží odpověď uživatele při zavření dialogového okna výběrem tlačítka. (Pokud je tato hodnota prázdná, odpověď se zahodí.)
  • Cíl: GameObject s komponentou Variables pro uložení odpovědi uživatele.

Pokud je proměnná Result definovaná, po zadání uzlu Zobrazit dialog se resetuje na prázdný řetězec a nastaví se na odpověď uživatele asynchronně, když uživatel vybere tlačítko pro zavření dialogového okna. Uložená hodnota je nelokalizovaný popisek tlačítka z výše uvedeného seznamu. Pomocí uzlu události On State Changed (Při změně stavu ) můžete reagovat na odpověď uživatele jako 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 On State Changed (Při změně stavu) reagující na změnu proměnné

Proměnná Result 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 (Při změně stavu ) se aktivuje na všech klientech, aby reagoval na odpověď uživatele.

Uzly fyzikálních událostí

Uzly fyzikálních událostí On Trigger Enter, On Trigger Exit, On Collision Enter a On Collision Exit 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 fyzikální s collider pozorovaný těmito uzly událostí v rozsahu komponenty Local Physics Scope , události se spolehlivě aktivují právě na jednom klientovi. To umožňuje tokům skriptů, 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í zabezpečení klienta nebo přenosového kanálu – například škodlivé pokusy o čtení nebo zápis nepřístupných vzdálených dat v jiných klientech

Za tímto účelem 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ů, aby omezil přístup 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 datům mesh a dalším citlivým datům.
  • Vzdáleně: kontrolou, že autor scény má v úmyslu tuto část scény upravit. To se provádí statickou analýzou vizuálních skriptů na straně příjemce pro jejich potenciální zápisy scény.

Příklady:

  • Škodlivý místní vizuální skript chce dát všem avatarům pohupovat hlavy. Za tímto účelem se pokusí prohledat celou scénu a vyhledat objekty GameObject, které představují hlavy avatarů. Mesh automaticky filtruje výsledky kontroly a vyloučí tak systém avatarů.
  • Vzdálený klient se zlými úmysly chce podvést scénu tím, že převrátí všechny objekty GameObject vzhůru nohama. Aby toho bylo možné dosáhnout, odešle aktualizaci vlastnosti, která nastaví svislé 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 něco takového udělal, místní klient vzdálený vstup ignoruje.