Delen via


Handleiding voor programmeurs voor cloudscripts

In deze handleiding wordt beschreven hoe u de Mesh Cloud Scripting-API en ontwikkelhulpprogramma's gebruikt om omgevingen te bouwen (deze beginnen als projecten in Unity en vervolgens worden geüpload naar een Mesh Collection). U wordt aangeraden eerst de infrastructuur voor cloudscripts instellen in Azure te lezen om vertrouwd te raken met de concepten en basisarchitectuur van Mesh Cloud Scripting.

In deze sectie worden de functies en interface van de Mesh Cloud Scripting-API beschreven, die wordt gebruikt om de scripts te schrijven die gedrag in omgevingen stimuleren.

Basis DOM-structuur

De DOM-structuur weerspiegelt de structuur van uw Unity-scène. Het lid Scène van de toepassing komt overeen met het gameobject waaraan uw Mesh Cloud Scripting-onderdeel is gekoppeld. De volgende Mesh Cloud Scripting-API-klassen wijzen een-op-een toe met Unity-objecten die in de editor zijn gemaakt:

  • GameObject (& Transform Component) -> TransformNode
  • Lichtonderdeel -> PointLightNode, SpotLightNode, DirectionalLightNode
  • > AnimationNode (en afgeleide klassen, zie hieronder)
  • Box Collider Component -> BoxGeometryNode
  • Sphere Collider Component -> SphereGeometryNode
  • Capsule Collider Component -> CapsuleGeometryNode
  • Mesh Collider Component -> MeshGeometryNode
  • Text Mesh Pro-onderdeel -> TextNode
  • Rigidbody Component -> RigidBodyNode

Als u bijvoorbeeld een scène maakt met een gameobject met een Light-onderdeel (ingesteld op een puntlicht) en een bolbotser die is gekoppeld, bevat uw scène een TransformNode met twee onderliggende elementen: een PointLightNode en een SphereGeometryNode.

Daarnaast hebben sommige Mesh Cloud Scripting API-objecten geen bijbehorende ingebouwde Unity-onderdelen. Dit zijn extra onderdelen die u kunt maken in Unity die deel uitmaken van het Mesh Toolkit-pakket.

  • Mesh Cloud Scripting-onderdeel (hierboven beschreven)
  • WebSlate-onderdeel

De Unity DOM toewijzen aan de Mesh DOM

U kunt een scène maken met onderdelen die de Mesh Cloud Scripting-API niet kent. Deze bestaan gewoon niet in de Mesh Cloud Scripting DOM voor de scène. De volledige scènestructuur van GameObjects wordt echter gespiegeld in de DOM-API als TransformNodes.

Unity heeft een Api-shape voor GameObject/component; De Mesh Cloud Scripting DOM heeft echter één structuur. Een TransformNode in de Mesh Cloud Scripting-API heeft onderliggende elementen die andere TransformNodes kunnen zijn of andere knooppunten die zijn toegewezen aan onderdelen. We kunnen dit beschouwen als een samengevoegde lijst met de onderdelen van het bijbehorende gameobject en de onderliggende onderdelen van het transformatieonderdeel.

Transformatie rect

Als u een onderdeel toevoegt dat gebruikmaakt van een RectTransform,bijvoorbeeld het Text Mesh Pro-onderdeel, wordt het gameobject niet weergegeven als een knooppunt in de scènegrafiek van Mesh Cloud Scripting. Het is nog steeds mogelijk om een dergelijk onderdeel te verplaatsen, in te schakelen en uit te schakelen, maar hiervoor moet u het gameobject verpakken met Behulp van RectTransform in een ander gameobject met behulp van het reguliere Transform-onderdeel.

Gebeurtenissen voor eigenschapswijziging

U kunt zich abonneren op gebeurtenissen voor eigenschapswijziging door op elk knooppunt in de hiërarchie aan te roepen AddPropertyChangedEventHandler . U moet de naam van de eigenschap doorgeven als een tekenreeks.

Het is ook mogelijk om u te abonneren op alle gebeurtenissen door u te abonneren op de DomObjectPropertyChanged gebeurtenis. Dit wordt aangeroepen wanneer een eigenschap in de DOM wordt gewijzigd.

Levenscyclus van objecten

Knooppunten, wanneer deze worden gemaakt, worden niet gepareerd. Dit betekent dat ze pas zichtbaar zijn in de scène als ze expliciet als kind aan de scène of een van de onderliggende elementen worden toegevoegd. Als u het bovenliggende knooppunt instelt op null, worden het en de onderliggende waarden uit de scène verwijderd.

Soms wilt u een knooppunt tijdelijk uitschakelen, maar niet een record bewaren van waar het zich in de scène bevond. Daarom heeft elk knooppunt een 'actieve' vlag. Als deze is ingesteld op onwaar, worden het knooppunt en de bijbehorende afstammelingen uitgeschakeld.

U kunt gameobjecten en onderdelen maken in Unity die deel uitmaken van de scène, maar die zijn uitgeschakeld. Deze worden weergegeven als knooppunten in de scenehiërarchie van mesh-cloudscripts, maar de actieve vlag is ingesteld op false. Als u de actieve vlag instelt op true, worden deze ingeschakeld in de Unity-scène.

Klonen en opnieuw klonen

Knooppunten kunnen worden gekloond en opnieuw worden gebruikt in de Mesh Cloud Scripting-API; de bijbehorende Unity-scène wordt dienovereenkomstig bijgewerkt. Als u een knooppunt kloont, worden dat knooppunt en alle onderliggende items gekloond (inclusief onderliggende objecten in de bijbehorende Unity-objecten, maar die niet zichtbaar zijn voor Mesh Cloud Scripting).

Het is mogelijk om knooppunten te klonen of opnieuw te gebruiken die overeenkomen met Unity Components. Dit wordt geïmplementeerd door deze Unity-onderdelen opnieuw te maken op basis van de Mesh Cloud Scripting Node-weergaven. Alleen knooppunten die kunnen worden gemaakt via de Mesh Cloud Scripting-API, kunnen worden gekloond of opnieuw worden gebruikt. Als u een onderdeel in Unity hebt gemaakt en velden hebt ingesteld die niet worden weergegeven in het bijbehorende Mesh Cloud Scripting Node, worden deze velden teruggezet op de standaardinstellingen als het knooppunt zelf wordt gekloond. Daarom raden we u aan knooppunten te klonen of opnieuw te transformeren waar u objecten bewerkt die zijn gemaakt in Unity. Deze bewaren altijd alle oorspronkelijke Unity-instellingen correct.

Gebruikers

Er zijn verschillende plaatsen in de API die gebruikerseigenschappen bieden. De User.Identifier eigenschap is een permanente id-tekenreeks die permanent is voor de gebruiker, zelfs als de gebruiker vertrekt en opnieuw lid wordt. De weergavenaam van de gebruiker is ook toegankelijk via User.DisplayName. De gebeurtenis-id waarmee de gebruiker verbinding heeft gemaakt, is toegankelijk via User.ConnectedEventId.

Tijdens de ontwikkeling kan de weergavenaam, id en gebeurtenis-id van de gebruiker worden gesimuleerd in de Mesh Cloud Scripting-onderdeeleditor in de ontwikkelaarsinstellingen, zoals hieronder wordt weergegeven.

Eigenschappen van gesimuleerde gebruikers

Avatars

Avatars zijn de weergave van gebruikers in de scène. Ze kunnen worden gebruikt om gebruikers naar een bepaalde locatie te teleporteren, tussen scènes te reizen en conflicten met triggervolumes te detecteren.

Infodialoogvensters

Het is mogelijk om in Mesh Cloud Scripting een schermruimtedialoogvenster in de Microsoft Mesh-toepassing te openen met een aangepast bericht. SceneNode bevat hiervoor een functie. ShowMessageToParticipants(string message, IReadOnlyCollection<Participant> participants) Tekstlabels met opmaak kunnen in het bericht worden gebruikt om teksteigenschappen te beheren (kleur, vet enzovoort).

Invoerdialoogvensters

Mesh Cloud Scripting kan tekstinvoer aanvragen van een deelnemer in een Mesh-gebeurtenis met een aangepast bericht. CloudApplication biedt de methode Task<string> ShowInputDialogToParticipantAsync(string message, Participant participant, CancellationToken token). Tekstlabels met opmaak kunnen in het bericht worden gebruikt om teksteigenschappen te beheren (bijvoorbeeld kleur of vet).

Klassen

CloudApplication

De ICloudApplication interface is het startpunt voor het ontwikkelen van Mesh-apps. Deze is beschikbaar in 'App.cs' als de variabele _app. Naast de scène ICloudApplication beschikt u over functies voor alle beschikbare typen. Het heeft ook een aantal andere methoden, maar ze zijn voor intern gebruik.

InteractableNode

De MeshInteractableSetup is een aangepast Unity-onderdeel dat deel uitmaakt van het Mesh Toolkit-pakket. Wanneer u het aan een gameobject in Unity koppelt, wordt er een klikgebeurtenis gegenereerd wanneer een gebruiker op een van de actieve collidables in dat gameobject of de onderliggende objecten klikt.

Hieronder ziet u een eenvoudig voorbeeld, waarbij het meshInteractableSetup-onderdeel wordt toegevoegd aan hetzelfde gameobject als de box collider:

Voorbeeld van eenvoudige invoer

WebSlateNode

WebSlate is een aangepast Unity-onderdeel dat deel uitmaakt van het Mesh Toolkit-pakket. Als u een WebSlate-prefab wilt toevoegen aan uw scène, selecteert u GameObject>Mesh Toolkit>WebSlate in de menubalk. De website die is toegewezen aan de URL-eigenschap van het WebSlate-exemplaar, wordt weergegeven op de quad van deze prefab.

Hieronder ziet u een voorbeeld waarin een webslate-prefab is toegevoegd aan de scène en een URL is toegewezen:

        var webSlateNode = Root.FindFirstChild<WebSlateNode>(true);
        webSlateNode.Url = new System.Uri("https://en.wikipedia.org/wiki/Color");

Voorbeeld van WebSlate

Luisteren naar klikken

Hier volgt een eenvoudig Mesh Cloud Scripting-script waarmee de kubus telkens wanneer erop wordt geklikt, wordt gedraaid. Vervang de stub-methode StartAsync door App.cs deze code.

        private float _angle = 0;

        public Task StartAsync(CancellationToken token)
        {
            // First we find the TransformNode that corresponds to our Cube gameobject
            var transform = _app.Scene.FindFirstChild<TransformNode>();

            // Then we find the InteractableNode child of that TransformNode
            var sensor = transform.FindFirstChild<InteractableNode>();

            // Handle a button click
            sensor.Selected += (_, _) =>
            {
                // Update the angle on each click
                _angle += MathF.PI / 8;
                transform.Rotation = new Rotation { X = 1, Y = 0, Z = 0, Angle = _angle };
            };

            return Task.CompletedTask;
        }

Klik op Info

Het is mogelijk om erachter te komen welke gebruiker op de collider heeft geklikt door de gebeurtenisargumenten voor eigenschapswijziging te bekijken. U kunt ook het contact normaal en de positie van de klik van de gebeurtenisargumenten lezen. Deze coördinaten zijn relatief ten opzichte van de lokale coördinaatruimte van de InteractableNode.

Animators

U kunt eenUnity maken en toevoegen aan uw scène en deze beheren via Mesh Cloud Scripting. De Mesh-toolkit-invoegtoepassing bekijkt de assets in uw Unity-project en voor elke Resource die wordt gevonden, wordt er een klasse gegenereerd in een map AnimationScripts in uw Mesh Cloud Scripting-project. Deze klasse is afgeleid van AnimationNode en kan worden gebruikt voor het beheren van de Azure-versie van De Mesh Cloud Scripting. Wanneer u de Verzetten als onderdeel toevoegt aan een gameobject in Unity, vindt u een bijbehorend exemplaar van de gegenereerde klasse als een onderliggend element van de bijbehorende TransformNode. Met behulp van de API van deze klasse kunt u de Resource beheren.

Het Mesh Cloud Scripting-programmeermodel is gezaghebbend voor de server en we ondersteunen slechts een kleine subset van de Functionaliteit van Azure. Dit komt doordat we de Linkerkant op de server modelleren en verwachten dat alle clients nauwkeurig met het servermodel worden gesynchroniseerd. Daarom wordt alleen de volgende API momenteel ondersteund:

  • Statusinstelling (voor elke laag is er een bijbehorende eigenschap in de klasse die kan worden ingesteld op een enum op basis van de beschikbare statussen in de Neerkoming). Statussen worden onmiddellijk ingesteld, niet via overgangen.
  • Instelling van floatvariabele: alleen floatvariabelen worden weergegeven en alleen voor het binden aan 'Bewegingstijd' in een Overeenkomt.
  • Instelling voor laagsnelheid

Binnen een status kunt u een animatieclip maken zonder beperkingen voor de waarden die u in de Unity-scène kunt instellen. Herhalende animatieclips worden ook ondersteund. De volgende functiesvanens worden niet ondersteund via AnimationNodes:

  • Overgangen: als u overgangen toevoegt aanuws, kunt u deze niet activeren via de Mesh Cloud Scripting-API (de server modelovergangen worden niet gemodelleerd).
  • Variabelen (met uitzondering van floats naar de bewegingstijd). Variabelen die worden gebruikt om overgangslogica of snelheidsvermenigvuldigers te stimuleren, worden niet ondersteund.
  • Gespiegelde toestanden, cyclusverschil en voet IK.

Late join en Azure-beheerders

Wanneer clients lid worden van een Mesh-gebeurtenis, synchroniseren ze met de huidige status en lokale tijd van alle actieve animatieknooppunten. Als u een langlopende animatie hebt die in een status wordt afgespeeld, wordt de afspeeltijd ingesteld op de juiste huidige tijd van de animatie bij late join. Als uw staat echter gebeurtenissen afvuurt, worden deze niet geactiveerd in de client die te laat is toegevoegd. Sommige andere scenario's werken mogelijk niet zoals verwacht; Als u bijvoorbeeld een geluid activeert door een AudioSource aan het begin van een status in te schakelen, wordt die AudioSource nog steeds ingeschakeld in de client voor late join, maar wordt aan het begin van de audioclip afgespeeld.

De beginstatus van De Provincie

We raden u aan Om Eens te maken met standaardstatussen die niets doen. Wanneer een scène wordt afgespeeld in Unity, worden alle Microsoft-gebruikers geactiveerd en worden hun standaardanimaties afgespeeld. Dit kan gebeuren voordat de Mesh Cloud Scripting Service-verbinding plaatsvindt; Daarom is het niet mogelijk om deze statussen en gedrag te synchroniseren.

De reparenting en het klonen van DeMping

AnimationNodes kunnen niet worden gemaakt via de Mesh Cloud Scripting-API. De enige manier om een AnimationNode te maken, is door een Unity-scène te exporteren die een Resource-onderdeel bevat. Als u de AnimationNode probeert te klonen of opnieuw te maken, krijgt u een foutmelding omdat deze actie niet kan worden ondersteund. Het is nog steeds mogelijk om het bovenliggende element van de AnimationNode te klonen of weer te geven, omdat dit overeenkomt met het met unity game-object dat kan worden gekloond en bovenliggend.

Notities over gegenereerde code

Met de gegenereerde code worden spaties verwijderd uit namen van De lagen, staten en variabelen; De variabelenaam 'my var' wordt bijvoorbeeld 'myVar' in code. Als gevolg hiervan is het mogelijkoms te maken die geen geldige code genereren. Als u bijvoorbeeld twee variabelen hebt met de naam 'my var' en 'myVar', krijgt u een foutmelding tijdens het genereren en een bericht waarin u wordt gevraagd om de naam van de variabele(n) te wijzigen.

LightNode

PointLightNode, DirectionalLightNode en SpotLightNode worden allemaal toegewezen aan het Unity Light-onderdeel (waarvan het type is ingesteld op de bijbehorende waarde). Het is mogelijk om de basisparameters van deze lichten in te stellen via de LightNode-API's. Het is ook mogelijk om Lights handmatig te maken via de API. Als u lichte knooppunten maakt via de API, blijven parameters die niet zijn ingesteld via de Mesh Cloud Scripting-API op hun standaardwaarden staan.

GeometryNode

BoxGeometryNode, SphereGeometryNode, CapsuleGeometryNode en MeshGeometryNode worden toegewezen aan respectievelijk het Box Collider Component, Sphere Collider Component, Capsule Collider Component en Mesh Collider Component. Ze kunnen ook worden gemaakt via de Mesh Cloud Scripting-API. Als u Geometrieknooppunten inschakelt en uitschakelt, worden ze toegevoegd aan en verwijderd uit hitkandidaten als een MeshInteractableSetup is gekoppeld aan hun gameobject of een van de ouders.

Als u geometrieknooppunten maakt via de API, blijven parameters die niet zijn ingesteld via de Mesh-API op hun standaardwaarden staan (bijvoorbeeld fysicamateriaal wordt ingesteld op geen en isTrigger wordt ingesteld op onwaar).

RigidBodyNode

Door een Rigidbody-component aan een object toe te voegen, wordt de beweging onder controle van Mesh Physics geplaatst. Zonder code toe te voegen, wordt een Rigidbody-object omlaag getrokken door de zwaartekracht en reageert op botsingen met andere objecten.

Opmerking: GeometryNode.Friction retourneertstaticFriction . Als dit echter is ingesteld aan de zijde van Mesh Cloud Scripting, worden beide staticFriction en dynamicFriction op clients bijgewerkt.

Triggervolumes

Geometrieknooppunten kunnen fungeren als triggervolumes wanneer hun IsTrigger eigenschap is ingesteld op true. Deze vlag komt overeen met de IsTrigger eigenschap op de collider in Unity en kan tijdens runtime niet worden gewijzigd. Wanneer de geometrie een trigger is, wordt deze gegenereerd Entered en Exited voor avatars die elkaar overlappen.

Opmerking: Het Unity-object moet worden toegevoegd aan de TriggerVolume laag om toe te staan dat de teleportstraal het negeert, omdat bots in de laag de Default teleportstraal blokkeren.

TextNode

TextNode wordt toegewezen aan het TextMeshPro-onderdeel van Unity. Als u een TextMeshPro-onderdeel aan uw scène toevoegt, is er een bijbehorende TextNode in uw Mesh Cloud Scripting-scènehiërarchie. Hiermee kunt u de tekst van het onderdeel tijdens runtime instellen. U kunt ook de basisteksteigenschappen wijzigen via de TextNode-API, vet, cursief, onderstrepen, doorhalen en kleuren. Het is momenteel niet mogelijk om een TextNode te maken via de API; u moet ze maken door ze toe te voegen aan uw scène in Unity. U kunt een TextNode ook niet rechtstreeks klonen. U moet in plaats daarvan de bovenliggende TranformNode van de TextNode klonen.

Meshes

Meshes zijn momenteel 'verborgen' onderdelen voor de Mesh Cloud Scripting-API. Ze kunnen worden gemaakt in de Unity-editor en kunnen worden bewerkt door hun bovenliggende gameobjecten/Transform-onderdelen te bewerken, maar ze kunnen niet programmatisch worden gemaakt, noch kunnen hun eigenschappen tijdens runtime worden bewerkt via de Mesh-API.

Visuele scripts

U kunt een Unity Script Machine maken en toevoegen aan uw scène en deze beheren via Mesh Cloud Scripting. De Mesh Toolkit-invoegtoepassing bekijkt de assets in uw Unity-project en voor elke scriptmachine die wordt gevonden, wordt er een klasse gegenereerd in een map 'VisualScripts' in uw Mesh Cloud Scripting-project. Deze klasse is afgeleid van VisualScriptNode en kan worden gebruikt om de Unity-variabelen te bewerken die zijn gekoppeld aan de Script Machine van Mesh Cloud Scripting. Wanneer u de Script Machine als onderdeel aan een GameObject in Unity toevoegt, vindt u een bijbehorend exemplaar van de gegenereerde klasse als onderliggend element van de bijbehorende TransformNode. Met behulp van de API van deze klasse kunt u de variabelen van de scriptmachine beheren.

Statussynchronisatie

Mesh repliceert standaard automatisch scènewijzigingen die worden uitgevoerd door visuele scripts op de ene client naar alle andere clients. Voor Mesh Cloud Scripting om op de hoogte te zijn van een wijziging die is aangebracht via visualscripting, moet aan de volgende voorwaarden worden voldaan:

  • Het scriptmachineonderdeel bevindt zich in een GameObject dat een afstammeling is van de hoofdmap van de Mesh Cloud Scripting-scène.
  • De optie Visual Scripting inschakelen van het Mesh Cloud Scripting-onderdeel is ingeschakeld.

Als niet aan een van de bovenstaande voorwaarden wordt voldaan, blijft de Mesh Visual Scripting-runtime de scènewijzigingen repliceren, maar blijft Mesh Cloud Scripting in de vergetelheid bij deze wijzigingen.

Begintoestand

Het is raadzaam om uw visuele scripts niet te wijzigen of te vertrouwen op gedeelde status bij het starten. De gebeurtenis On Start vindt meestal plaats voordat de Mesh Cloud Scripting Service-verbinding plaatsvindt. Daarom is er op dat moment geen manier om de status te synchroniseren en gedrag is mogelijk niet wat u wenst.

Late Join

Wanneer clients lid worden van een Mesh-gebeurtenis, synchroniseren ze met de huidige status van alle Visual Script-knooppunten. Elke gebeurtenis status gewijzigd die eerder op de andere clients is gegenereerd, wordt niet gegenereerd op de client die te laat is toegevoegd. Sommige andere scenario's werken mogelijk niet zoals verwacht; Als u bijvoorbeeld een geluid activeert door een AudioSource in te schakelen als reactie op een gebeurtenis Status gewijzigd , wordt audiobron nog steeds ingeschakeld in de client voor late join, maar wordt deze aan het begin van de audioclip afgespeeld.

Reparenting en klonen

VisualScriptNode kan niet worden gemaakt via de Mesh Cloud Scripting-API. De enige manier om een VisualScriptNode te maken, is door een Unity-scène te exporteren die een scriptmachineonderdeel bevat. Als u de VisualScriptNode probeert te klonen of opnieuw te gebruiken, krijgt u een foutmelding omdat deze actie niet kan worden ondersteund. Het is nog steeds mogelijk om het bovenliggende element van de VisualScriptNode te klonen of opnieuw in te stellen, omdat dit overeenkomt met het bijbehorende Unity GameObject dat kan worden gekloond en bovenliggend.

Notities over gegenereerde code

Met de gegenereerde code worden spaties verwijderd uit de namen van scriptmachines en variabelen; De variabelenaam 'my var' wordt bijvoorbeeld 'MyVar' in code. Daarom is het mogelijk om scriptmachines te maken die geen geldige code genereren. Als u bijvoorbeeld twee variabelen hebt met de naam 'my var' en 'myVar', krijgt u een foutmelding tijdens het genereren en een bericht waarin u wordt gevraagd om de naam van de variabele(n) te wijzigen.

Andere onderwerpen over Mesh Cloud Scripting

Resources toevoegen aan de Mesh Cloud Scripting Service

Als u een resource wilt toevoegen die door uw Mesh Cloud Scripting Service moet worden gebruikt, moet u deze als een ingesloten resource toevoegen aan uw C#-projectbestand. U kunt dit doen via de gebruikersinterface van het project in Visual Studio of door de volgende regel rechtstreeks toe te voegen aan het .csproj-bestand:

<EmbeddedResource Include="<my_resource_file>" CopyToOutputDirectory="PreserveNewest" />

Houd er rekening mee dat de scene.map is verpakt, die u kunt zien in het .csproj-bestand ter referentie.

Werken met Mesh Physics

Mesh Physics zal ervoor zorgen dat beweging van stijve lichamen tussen cliënten wordt gesynchroniseerd. Mesh Cloud ScriptingTransformNode.Position, TransformNode.RotationRigidBody.Velocity en RigidBody.AngularVelocity wordt niet bijgewerkt met de nieuwste simulatiestatus. Clients passen echter wijzigingen toe als deze zijn ingesteld in de Mesh Cloud Scripting Service. Houd er rekening mee dat het wijzigen van één eigenschap anderen ongewijzigd laat. Als bijvoorbeeld alleen positie is ingesteld, wordt de snelheid niet gewijzigd en blijft de beweging met een oude snelheid vanaf een nieuwe positie voortgaan. Aangezien Mesh Cloud Scripting Service niet wordt bijgewerkt met de nieuwste bewegingsstatus voor stijve lichamen, wordt aanbevolen deze alleen in te stellen voor nieuwe stijve lichamen.

Als TransformNode met RigidBodyNode is gekloond, wordt gekloonde hoofdtekst geregistreerd en overgedragen voor Mesh Physics synchronisatie tussen clients. Opmerking: Gekloonde stijve body heeft positie, rotatie en snelheid vanaf het begin van de scène van het oorspronkelijke stijve lichaam. Als deze verschillen moeten zijn, moeten ze expliciet worden ingesteld in de Mesh Cloud Scripting.

Volgende stappen