Základní koncepty skriptování v cloudu
Přečtěte si přehled skriptování cloudových sítí a skriptování vizuálů mesh.
Rozdíly mezi cloudovými skripty mesh a monobehaviours
Mezi skriptováním cloudových sítí a monobehavioury existuje několik hlavních rozdílů:
- Služby cloudových skriptování se zapisují do rozhraní API pro skriptování cloudu Mesh (na rozdíl od rozhraní Unity API).
- Cloud Scripting Services běží v cloudu v samostatném procesu (na rozdíl od klienta) a jejich účinky se automaticky synchronizují se všemi připojenými klienty.
Přehled architektury
Aby bylo možné povolit skriptování cloudových služeb Mesh, nasadí se aplikační služba s názvem Mesh Cloud Scripting Service do konkrétní skupiny prostředků Azure, kterou zadáte. Cloud Scripting běží na back-endu Azure a skládá se ze sady skriptů serveru C# spuštěných v kontejneru s koncovým bodem, ke kterému se klienti připojují. V následujícím diagramu vidíte, že existují dva klienti, kteří se připojují ke službě Cloud Scripting Service. Cloud Scripting Service má svůj vlastní autoritativní graf scény (v diagramu označený jako A). Cloud Scripting Service komunikuje s tímto grafem scény prostřednictvím rozhraní GRAPH API scény cloudových skriptů mesh.
Graf scény skriptování cloudu Mesh se automaticky synchronizuje z cloudu se všemi připojenými klienty. Každý klient má identickou kopii grafu scény Cloud Scripting Mesh (označený jako B v diagramu), která je synchronizovaná s autoritativní cloudovou verzí. Když Služba skriptování cloudu Mesh provede změny grafu scény v cloudu, tyto změny se rozšíří do kopií na všech klientech.
Modul runtime Unity Mesh na každém klientovi reaguje na změny v instanci grafu scény skriptování cloudu Mesh a aktualizuje scénu Unity tak, aby odrážela její stav. I když se grafové rozhraní API scény cloudových skriptů Mesh a rozhraní Graph API scény Unity liší, mapují se těsně k sobě a mají stejnou nebo podobnou strukturu.
Mesh Cloud Scripting, Game Objects a Mesh Cloud Scripting Scene Graph
Objekty, které se nakonec zobrazí v události v aplikaci Mesh, se dají rozdělit do dvou kategorií:
Objekty, které přidáte do prostředí v Unity.
Objekty, pomocí které si událost přizpůsobíte. Vzhledem k tomu, že tyto skripty nebyly součástí prostředí, služba Mesh Cloud Scripting o nich neví.
Vytvoření scény
Aby bylo možné povolit skriptování mesh cloudu, musí mít vaše scéna komponentu Mesh Cloud Scripting .
Komponenta zodpovídá za správu skriptů, které vytvoříte, a jejich vazbu na scénu Unity v době úprav i za běhu v aplikaci Mesh. Mesh Cloud Scripting je samostatná technologie, ale má úzkou integraci s Unity. Pokyny pro přidání objektu GameObject pro skriptování cloudu Mesh najdete v článku Vytvoření jednoduchého projektu cloudových skriptů a podrobnější informace o skriptování v části Průvodce programátorem.
Graf scény Skriptování cloudu Mesh je omezen na Objekty GameObject, které přidáte do scény pod GameObject obsahující komponentu Mesh Cloud Scripting. I když Skriptování cloudu Mesh nemůže přímo zobrazit hierarchii scény zbytku scény, může přistupovat k rozhraním API, která aplikace Mesh poskytuje– například může získat seznam uživatelů ve scéně nebo reagovat na vybraný objekt.
Komponenty a graf scény skriptování cloudu Mesh
V následujícím diagramu si všimněte, že hierarchie scény Unity a scény skriptování cloudu Mesh jsou stejné. Modré uzly v části Unity Scene představují GameObjects; každý GameObject má odpovídající TransformNode v grafu scény skriptování cloudu Mesh. Při aktualizaci TransformNode způsobí transformaci herního objektu, který odpovídá ve scéně Unity, aby se aktualizovala na stejnou hodnotu.
Rozhraní MESH Cloud Scripting API obsahuje typy, které se mapují jenom na podmnožinu celé sady komponent Unity. Stále je platné vytvořit Unity Scene s komponentami, na které rozhraní MESH Cloud Scripting API nemůže namapovat; Budou jednoduše neviditelní pro skriptování cloudových sítí. V diagramu má bílá komponenta odpovídající uzel v grafu scény Cloud Scripting Mesh; Zeleně barevná komponenta není. Graf scény Skriptování cloudu Mesh nemá uzel systému částic, takže v našem příkladu se komponenta systému částic ve scéně Unity nezobrazí v odpovídající scéně Cloud Scripting mesh. Okolní komponenty a vlastnící herní objekt jsou však v grafu scény Cloud Scripting Mesh. To znamená, že Mesh Cloud Scripting bude schopen přesunout částicový systém kolem scény tím, že přesune své vlastní herní objekty, i když samotný částicový systém je neviditelný pro Cloud Scripting.
Rozhraní API pro skriptování cloudu Mesh umožňuje klonování uzlů. Pokud aplikace vytvoří klon "A" (který odpovídá uzlu "A", GameObjectParent, ve scéně Unity), naklonuje se celý dílčí strom GameParentObject, včetně systému částic Mesh Cloud Scripting nevidí.
Vytváření skriptů cloudových sítí
Podrobné pokyny ke skriptování mesh cloudu najdete v článku Vytvoření jednoduchého projektu cloudových skriptů a článků Průvodce programátorem. Tady vám poskytneme stručný přehled.
Typický projekt Unity obsahující scénu se skriptováním Cloud Mesh by vypadal na disku následujícím způsobem (složky se zobrazují tučně):
- Projekt Unity
- Majetek
- Scény
- MyScene.unity
- . MeshCloudScripting
- MyScene
- MyScene.csproj
- Program.cs
- scene.map
- App.cs
- MyScene
- Scény
- Majetek
Každá scéna v projektu Unity, která obsahuje komponentu MeshCloudScripting, má odpovídající složku se stejným názvem, která je obsažena v ". Složka MeshCloudScripting v adresáři Assets Komponenta Mesh Cloud Scripting vytvoří tuto složku a její počáteční sadu souborů, které se zkompilují do plně funkční, i když prázdné cloudové skriptovací služby. Některé z počátečních souborů jsou uvedeny výše. Program.cs
obsahuje často používaný kód, který se stará o:
konfigurace IHostBuilder pro spuštění
App
služby.IHost
spuštění instance k dokončení.
App.cs
je třída, která hostuje logiku aplikace. Implementuje rozhraní IHostedService , takže má dva vstupní body: StartAsync
a StopAsync
. StartAsync
se aktivuje jednou, až IHost
bude připraven ke spuštění App
služby. Aktivuje se také, StopAsync
když IHost
provádí řádné vypnutí.
Reprezentace scény
Všimněte si souboru scene.map v seznamu výše. Jedná se o interní podrobnosti, ale je užitečné porozumět. Při ruční aktivaci v uživatelském rozhraní nebo při přehrávání scény Unity v Editoru zapíše komponenta Mesh Cloud Scripting soubor scene.map do odpovídající složky Mesh Cloud Scripting. Jedná se o reprezentaci scény jako hierarchii scény cloudových skriptů; Typy Unity se převedou na typy skriptování cloudových sítí. Když je cloudová skriptovací služba Mesh nasazená do cloudu, nepotřebuje ke spuštění původní scénu Unity. Místo toho načte soubor scene.map , který definuje počáteční hierarchii scény. Když se klient Mesh připojí ke službě Mesh Cloud Scripting Service, obdrží hierarchii skriptování cloudu Mesh a aktualizuje scénu Unity tak, aby odpovídala. Abychom to umožnili, dále ukládáme ID ve vazbách Mesh Cloud Scripting, které se používají k mapování na odpovídající objekty Unity ve scéně.
Poznámka: Aby výše uvedené soubory fungovaly, musí se soubor scene.map a scéna Unity shodovat. Pokud z nějakého důvodu například ne– jako výsledek chyby exportu – zjistí se tato chyba a služba Mesh Cloud Scripting Service a klient Mesh se nepřipojí.
Publikování prostředí pomocí cloudových skriptů Mesh
Když publikujete prostředí s cloudovým skriptováním Mesh, publikuje do Azure službu Environment a Cloud Scripting Service . Toto je znázorněno v následujícím diagramu:
Když provedete změnu scény, měli byste stisknout Tlačítko Přehrát v Unity a zobrazit náhled scény s nově vytvořenou a místně spuštěnou službou Mesh Cloud Scripting Service. Pak publikujte upravené prostředí pomocí nástroje Mesh Uploader. Publikování je podrobněji popsáno v části Sestavení a publikování prostředí a poskytnutí podrobností o skriptování cloudu pro články o sestavení a publikování .
Ověřování ve službě skriptování cloudu Mesh
Cloud Scripting Service může uchovávat seznam uživatelů. Po ověření uživatele má cloudová skriptovací služba trvalý identifikátor uživatele ve více relacích.
Tok ověřování ve službě cloudových skriptů Mesh tedy nevyžaduje žádné další úsilí. Je to zcela implicitní a zúčastněné strany pracují na získání tokenu a jeho automatické ověření.
Tady jsou strany zapojené do toku ověřování:
Sada nástrojů Mesh: Jako nástroj, přes který se nasazují cloudové skriptovací služby, můžete zvolit Service Mode
cloudovou skriptovací službu, která používá ověřování ověřovacího tokenu. To lze provést v nastavení Konfigurace prostředí v uživatelském rozhraní Uploader Mesh.
Služba Microsoft Mesh: Zodpovídá za vydání tokenu. Bez tokenu nemůžou uživatelé pracovat s cloudovým skriptováním.
Microsoft Mesh: Vstupní bod pro interakci uživatelů se skriptováním Cloud Mesh. Klient Služby Microsoft Mesh zodpovídá za vyžádání přístupového tokenu ze služby Microsoft Mesh jménem uživatele.
Cloudová skriptovací služba Mesh: Ověří token, který přijímá z žádostí o připojení vůči službě Microsoft Mesh, a pak z tokenu vybere trvalý identifikátor uživatele.
Strany spolupracují, jak je znázorněno níže: