Delen via


Basisconcepten voor cloudscripts

Lees een overzicht van Mesh Cloud Scripting en Mesh Visual Scripting

Verschillen tussen Mesh Cloud Scripts en MonoBehaviours

Er zijn verschillende belangrijke verschillen tussen Mesh Cloud Scripting en MonoBehaviours:

  • Cloud Scripting Services worden geschreven op basis van de Mesh Cloud Scripting-API (in plaats van de Unity-API).
  • CloudScripting Services wordt in de cloud uitgevoerd in een afzonderlijk proces (in tegenstelling tot op de client) en de effecten worden automatisch gesynchroniseerd met alle verbonden clients.

Architectuuroverzicht

Om Mesh Cloud Scripting in te schakelen, wordt een toepassingsservice met de naam Mesh Cloud Scripting Service geïmplementeerd in een bepaalde Azure-resourcegroep die u opgeeft. Cloudscripting wordt uitgevoerd op de Azure-back-end en bestaat uit een set C#-serverscripts die worden uitgevoerd in een container met een eindpunt waarmee de clients verbinding maken. In het onderstaande diagram ziet u dat er twee clients zijn die verbinding maken met Cloud Scripting Service. Cloud Scripting Service heeft een eigen gezaghebbende scènegrafiek (gemarkeerd als 'A' in het diagram). Cloud Scripting Service communiceert met deze scènegrafiek via de Mesh Cloud Scripting Scene Graph API.

Een diagram van de cloudscriptarchitectuur.

De scènegrafiek van Mesh Cloud Scripting wordt automatisch vanuit de cloud gesynchroniseerd met alle verbonden clients. Elke client heeft een identieke kopie van de Mesh Cloud Scripting-scènegrafiek (gemarkeerd als 'B' in het diagram), die gesynchroniseerd blijft met de gezaghebbende cloudversie. Wanneer Mesh Cloud Scripting Service wijzigingen aanbrengt in de scènegrafiek in de cloud, worden deze wijzigingen doorgegeven aan de kopieën op alle clients.

Op elke client reageert de Unity Mesh-runtime op wijzigingen in het exemplaar van de Mesh Cloud Scripting-scènegrafiek van de client en werkt de Unity-scène bij om de status ervan weer te geven. Hoewel de Graph API voor de Mesh Cloud Scripting-scène en de Graph API voor Unity-scènes verschillend zijn, worden ze nauw aan elkaar toegewezen en hebben ze dezelfde of vergelijkbare structuur.

Mesh Cloud Scripting, Game Objects en de Mesh Cloud Scripting Scene Graph

Objecten die uiteindelijk worden weergegeven in een gebeurtenis in de Mesh-app, kunnen worden onderverdeeld in twee categorieën:

  1. Objecten die u toevoegt aan uw omgeving in Unity.

  2. Objecten waarmee u uw gebeurtenis aanpast. Omdat deze geen deel uitmaakten van de omgeving, is Mesh Cloud Scripting zich er niet van bewust.

Een scène bouwen

Als u Mesh Cloud Scripting wilt inschakelen, moet uw scène een Mesh Cloud Scripting-onderdeel hebben.

Een schermafbeelding van het Mesh Cloud Scripting-onderdeel dat is gekoppeld aan het GameObject.

Het onderdeel is verantwoordelijk voor het beheren van de scripts die u maakt en bindt aan de Unity-scène, zowel tijdens het bewerken als tijdens runtime in de Mesh-app. Mesh Cloud Scripting is een zelfstandige technologie, maar heeft een nauwe integratie met Unity. U vindt instructies voor het toevoegen van het Mesh Cloud Scripting GameObject in het artikel met de naam Create a simple Cloud Scripting project en meer gedetailleerde informatie over scripting in de sectie Programmer's Guide .

De grafiek van de Mesh Cloud Scripting-scène is beperkt tot GameObjects die u toevoegt aan de scène onder het GameObject dat het Mesh Cloud Scripting-onderdeel bevat. Hoewel Mesh Cloud Scripting de scènehiërarchie van de rest van de scène niet rechtstreeks kan zien, heeft het toegang tot API's die de Mesh-app biedt, bijvoorbeeld een lijst met gebruikers in de scène of reageert op een object dat wordt geselecteerd.

Onderdelen en de Mesh Cloud Scripting Scene Graph

In het onderstaande diagram ziet u dat de hiërarchieën voor de Unity-scène en de Mesh Cloud Scripting Scene identiek zijn. De blauwe knooppunten in de sectie Unity Scene vertegenwoordigen GameObjects; elk GameObject heeft een bijbehorende TransformNode in de Mesh Cloud Scripting Scene Graph. Wanneer een TransformNode wordt bijgewerkt, zorgt dit ervoor dat de transformatie van het gameobject dat overeenkomt met in de Unity Scene, wordt bijgewerkt naar dezelfde waarde.

Hiërarchieën van Unity- en Mesh-scènes

De Mesh Cloud Scripting-API heeft typen die alleen worden toegewezen aan een subset van de volledige set Unity-onderdelen. Het is nog steeds geldig om een Unity-scène te maken met onderdelen waaraan de Mesh Cloud Scripting-API niet kan worden toegewezen; Ze zijn gewoon onzichtbaar voor Mesh Cloud Scripting. In het diagram heeft een witgekleurd onderdeel een corresponderend knooppunt in de scènegrafiek mesh cloudscripting; een groengekleurd onderdeel niet. De Mesh Cloud Scripting-scènegrafiek heeft geen deeltjessysteemknooppunt, dus in ons voorbeeld wordt het deeltjessysteemonderdeel in de Unity-scène niet weergegeven in de bijbehorende Mesh Cloud Scripting-scène. De omringende onderdelen en het eigendom van het gameobject bevinden zich echter in de scènegrafiek van Mesh Cloud Scripting. Dit betekent dat Mesh Cloud Scripting het deeltjessysteem rond de scène kan verplaatsen door zijn eigen gameobjecten te verplaatsen, ook al is het deeltjessysteem zelf onzichtbaar voor Cloud Scripting.

Met de Mesh Cloud Scripting-API kunt u knooppunten klonen. Als de app een kloon maakt van 'A' (die overeenkomt met het knooppunt A, GameObjectParent, in de Unity-scène), wordt hiermee de volledige substructuur van GameParentObject gekloond, inclusief het deeltjessysteem Mesh Cloud Scripting, niet te zien.

Mesh Cloud Scripting ontwerpen

Gedetailleerde instructies over Mesh Cloud Scripting vindt u in de artikelen Create a simple Cloud Scripting project and Programmer's Guide articles. Hier geven we een kort overzicht.

Een typisch Unity-project met een scène met Mesh Cloud Scripting ziet er als volgt uit op de schijf (de mappen worden vet weergegeven):

  • Unity-project
    • Activa
      • Scènes
        • MyScene.unity
      • . MeshCloudScripting
        • MyScene
          • MyScene.csproj
          • Program.cs
          • scene.map
          • App.cs

Elke scène in uw Unity-project dat het MeshCloudScripting-onderdeel bevat, heeft een bijbehorende map met dezelfde naam in een '. MeshCloudScripting'-map in de map Assets. Het Mesh Cloud Scripting-onderdeel maakt deze map en de eerste set bestanden die worden gecompileerd naar een volledig werkende, maar lege Cloud Scripting Service. Sommige van de oorspronkelijke bestanden worden hierboven weergegeven. Program.cs bevat standaardcode die zorgt voor:

App.cs is de klasse die als host fungeert voor uw toepassingslogica. De IHostedService-interface wordt geïmplementeerd, dus er zijn twee toegangspunten: StartAsync en StopAsync. StartAsync wordt eenmaal geactiveerd wanneer de IHost service klaar is om de App service te starten. Ook wordt StopAsync geactiveerd wanneer het IHost een probleemloos afsluiten uitvoert.

Scèneweergave

Noteer het scène.map-bestand in de bovenstaande lijst. Dit is een intern detail, maar het is handig om te begrijpen. Wanneer de Unity-scène handmatig wordt geactiveerd in de gebruikersinterface of wanneer de Unity-scène wordt afgespeeld in de Editor, schrijft het Mesh Cloud Scripting-onderdeel een scene.map-bestand naar de bijbehorende map Mesh Cloud Scripting. Dit is een weergave van de scène als een Mesh Cloud Scripting Scene-hiërarchie; de Unity-typen worden geconverteerd naar Mesh Cloud Scripting-typen. Wanneer Mesh Cloud Scripting Service wordt geïmplementeerd in de cloud, hoeft de oorspronkelijke Unity-scène niet te worden uitgevoerd. In plaats daarvan wordt het bestand scene.map geladen dat de eerste scènehiërarchie definieert. Wanneer een Mesh-client verbinding maakt met Mesh Cloud Scripting Service, ontvangt deze de Mesh Cloud Scripting-hiërarchie en werkt deze de Unity-scène bij zodat deze overeenkomt. Om dit mogelijk te maken, slaan we ook id's op in Mesh Cloud Scripting-bindingen die worden gebruikt om toe te wijzen aan de bijbehorende Unity-objecten in de scène.

Opmerking: om het bovenstaande te laten werken, moeten het bestand scene.map en de Unity-scène overeenkomen. Als dit om een of andere reden niet het gevolg is van een exportfout, wordt dit gedetecteerd en maakt Mesh Cloud Scripting Service en Mesh-client geen verbinding.

Publicatieomgevingen met Mesh Cloud Scripting

Wanneer u een omgeving publiceert met Mesh Cloud Scripting, publiceert deze de Omgeving en Mesh Cloud Scripting Service naar Azure. Dit wordt weergegeven in het onderstaande diagram:

De omgevingssjabloon en cloudscripting uploaden naar de cloud

Wanneer u een wijziging aanbrengt in uw scène, drukt u op Play in Unity om een voorbeeld van de scène te bekijken met de nieuw gebouwde en lokaal uitgevoerde Mesh Cloud Scripting Service. Publiceer vervolgens de gewijzigde omgeving met de Mesh Uploader. Publiceren wordt uitgebreid beschreven in de build en publicatie van uw omgeving en geef details over cloudscripts op voor het bouwen en publiceren van artikelen.

Verificatie in Mesh Cloud Scripting Service

Een cloudscriptservice kan een lijst bijhouden met wie de gebruikers zijn. Zodra een gebruiker is geverifieerd, heeft de Cloud Scripting Service een permanente id voor de gebruiker in meerdere sessies.

Dat gezegd hebbende, de verificatiestroom in Mesh Cloud Scripting Service vereist geen extra inspanning vanaf uw einde. Het is volledig impliciet en de betrokken partijen werken om het token op te halen en automatisch te valideren.

Dit zijn de partijen die betrokken zijn bij de verificatiestroom:

Mesh-toolkit: Als het hulpprogramma waarmee Cloud Scripting Services worden geïmplementeerd in de cloud, kunt u de Service Mode cloudscriptservice kiezen die wordt gebruikt bij het valideren van het verificatietoken. Dit kan worden gedaan in de omgevingsconfiguratie-instelling in de gebruikersinterface van Mesh Uploader.

Microsoft Mesh-service: verantwoordelijk voor het uitgeven van een token. Zonder een token kunnen gebruikers niet communiceren met een cloudscript.

Microsoft Mesh: het toegangspunt voor de interactie van gebruikers met Mesh Cloud Scripting. De Microsoft Mesh-client is verantwoordelijk voor het aanvragen van een toegangstoken van Microsoft Mesh Service namens de gebruiker.

Mesh Cloud Scripting Service: valideert het token dat het ontvangt van verbindingsaanvragen voor Microsoft Mesh Service en kiest vervolgens een permanente gebruikers-id uit het token.

De partijen werken samen zoals hieronder wordt geïllustreerd:

Verificatiestroom

Volgende stappen