Een eenvoudig cloudscriptproject maken
In dit artikel maakt en publiceert u een eenvoudig project met behulp van Mesh Cloud Scripting. In het artikel wordt ervan uitgegaan dat u cloudscripting al hebt ingesteld op uw systeem. We raden u aan vertrouwd te raken met de huidige lijst met bekende problemen met mesh-toolkits voordat u begint met ontwikkelen met Mesh Cloud Scripting.
Meer informatie over mesh-cloudscriptinfrastructuur en -beheer.
Een scène maken met Mesh Cloud Scripting
In de volgende instructies ziet u hoe u een eenvoudige omgeving maakt met een kubus die draait wanneer een gebruiker erop klikt.
Ga naar het artikel Met de naam Nieuwe maken of een bestaand project bijwerken. Als u een nieuw project maakt, moet u alle stappen in de sectie Maken van een nieuw project volgen. Als u een bestaand project bijwerkt, doet u hetzelfde voor de sectie met de naam Een bestaand project bijwerken.
Maak een nieuwe scène.
Sla de scène op en geef deze een naam. In dit voorbeeld gebruiken we de naam MyFirstCloudScripting.
Selecteer in de menubalk GameObject>Mesh Toolkit>Set-up Cloud Scripting.
Houd er rekening mee dat een gameobject met de naam Mesh Cloud Scripting wordt weergegeven in de hiërarchie en is geselecteerd. Als u in Inspector op de knop Toepassingsmap openen klikt...
... U ziet in de Windows-Bestandenverkenner dat hiermee ook een nieuw ASP.NET Core-project met de naam MyFirstCloudScripting.csproj in de assets > wordt gemaakt. De map MeshCloudScripting > MyFirstCloudScripting.
De scène wijzigen
Afspeelmodus instellen met Mesh Emulation. Zorg ervoor dat u een GameObject toevoegt aan de scène die als vloer kan fungeren en deze op de laag GroundCollision kunt instellen.
Wanneer u de Play-modus instelt met Mesh Emulation, wordt de prefab MeshEmulatorSetup[NoUpoload] toegevoegd aan de scène die de camera bevat die u vanaf dit punt gaat gebruiken. U hebt het standaard hoofdcamera GameObject niet meer nodig; verwijder het.
Selecteer GameObject>3D-objectkubus> op de menubalk.
Sleep in de hiërarchie de kubus naar het Mesh Cloud Scripting-object om de Kubus een onderliggend element van dat object te maken.
Terwijl de kubus is geselecteerd, gaat u in Inspector naar het onderdeel Transformeren en wijzigt u vervolgens de positie- en draaiwaarden van de kubus in het volgende:
Positie: X = 0,1, Y = 1,5, Z = 3,3.
Draaiing: X = -15, Y = 0,8, Z = 0,1
Tip: De camera in de MeshEmulatorSetup[NoUpload] prefab is een onderliggend object van AvatarHead.
Klik in Inspector op Component toevoegen en selecteer vervolgens Mesh Interactable Setup.
Sla de scène op.
Het C#-project wijzigen
Selecteer in de hiërarchie het Mesh Cloud Scripting-object .
Navigeer in Inspector naar het Mesh Cloud Scripting-onderdeel en klik vervolgens op de knop Toepassingsmap openen. Hiermee opent u Bestandenverkenner en ziet u een weergave van de projectinhoud.
Open het
App.cs
script in de code-editor.Houd er rekening mee dat er in de app-klasse twee variabelen zijn:
private readonly ILogger<App> _logger; private readonly ICloudApplication _app;
Voeg het volgende toe als een derde variabele:
private float _angle = 0;
De Methode StartAsync bevat één opmerking: 'Voeg hier de opstartcode van uw app toe'. Vervang dit door de onderstaande code, zodat de Methode StartAsync er als volgt uitziet:
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; }
Sla uw werk op.
De toepassing lokaal uitvoeren
- Klik in Unity op de knop Play van Unity Editor.
- Klik in het gamevenster op de kubus. Telkens wanneer u klikt, draait de kubus op de X-as.
- Wanneer u klaar bent, sluit u de afspeelmodus af.
Fouten opsporen in uw toepassing met Visual Studio (optioneel)
Zorg ervoor dat in de hiërarchie het Mesh Cloud Scripting-object is geselecteerd.
Navigeer in Inspector naar het Mesh Cloud Scripting-onderdeel en selecteer vervolgens Toepassingsopsporing inschakelen.
Voer de afspeelmodus in en selecteer het foutopsporingsprogramma.
Open het App.cs-bestand , voeg vervolgens een onderbrekingspunt toe en ga door met de uitvoering.
Klik in Unity op de kubus.
Notitie
Standaard treedt er een time-out op voor de toepassing na twee minuten inactiviteit. Als u dit venster wilt vergroten, stelt u een "debugTimeoutSecs"
waarde in uw manifestbestand in (bijvoorbeeld: "debugTimeoutSecs": "240"
).
De omgeving bouwen en publiceren
Als u de omgeving wilt bouwen en publiceren, volgt u de instructies in het artikel Uw omgeving bouwen en publiceren.
Verbinding maken met de Cloud Scripting Service vanuit Unity
Notitie
Dit is alleen beschikbaar wanneer ServiceMode is ingesteld op Dev.
- Zorg ervoor dat in de hiërarchie het Mesh Cloud Scripting-object is geselecteerd.
- Ga in Inspector naar het onderdeel Mesh Cloud Scripting en open vervolgens de vervolgkeuzelijst Instellingen voor ontwikkelaars.
- Schakel de selectie Lokale cloudscriptserver uitvoeren uit.
- Klik op de knop Play van unity-editor.
Een gebeurtenis maken en hieraan deelnemen vanuit de Mesh-app
- Maak een gebeurtenis met behulp van de omgeving die u zojuist hebt gemaakt en gepubliceerd. Als u hulp nodig hebt, raadpleegt u hoe u een gebeurtenis maakt in de Mesh-portal.
- Neem deel aan de gebeurtenis in de Mesh-app.
Mesh Cloud Scripting Service-fouten weergeven in de Microsoft Mesh-toepassing (optioneel)
De foutberichten van Cloud Scripting Service worden standaard niet weergegeven in de Mesh-app om gebruikersonderbreking te minimaliseren. Als u deze berichten wilt weergeven voor foutopsporing, gebruikt u de volgende stappen:
Open de Mesh-app.
Klik op de menuknop en selecteer Instellingen.
Selecteer in de menubalk aan de linkerkant de optie Voor ontwikkelaars.
Schakel de foutknop Mesh-script weergeven in op 'aan'.