Delen via


Mesh 201 Tutorial Chapter 5: Get live weather data

In dit hoofdstuk gaan we verder naar Station 4, waar u leert hoe u Mesh Cloud Scripting gebruikt om gegevens op te halen uit interne of openbare bronnen en deze vervolgens te visualiseren in een 3D-context in uw scène. Zoals we in hoofdstuk 1 hebben besproken, is het uitgangspunt dat deelnemers in uw ervaring dit station kunnen gebruiken om te leren over weersomstandigheden op drie locaties waar ze een windturbine bouwen. De deelnemers kunnen op een interactieve wereldbol klikken en live weergegevens bekijken vanaf de drie locaties.

Stations 4 en 5 bevinden zich aan het andere uiteinde van het Sphere Terrace vanaf de vorige stations.

__________________________________

Instellen voor dit station

Als u dit station wilt voltooien, moet u een sleutel invoegen in een code waarmee u toegang hebt tot de API voor weergegevens. Laten we deze sleutel nu ophalen, zodat u uw werkstroom later niet hoeft te onderbreken.

  1. Navigeer naar de registratiepagina van weatherapi.com.

  2. Volg op die pagina de instructies om u aan te melden voor het proefabonnement.

    __________________________________

    U moet het e-mailbericht openen dat ze u sturen, uw account activeren en zich vervolgens aanmelden op hun site.

  3. Klik op de welkomstpagina op Pro Plus-plan.

    __________________________________

  4. Voor deze zelfstudie is het niet nodig om een betaald abonnement te hebben. Klik op de knop Downgrade onder Gratis en klik vervolgens in het dialoogvenster dat verschijnt op Sluiten.

    __________________________________

  5. Selecteer API in het menu aan de linkerkant onder Dashboard.

    __________________________________

  6. Selecteer de knop Kopiëren naast het veld API-sleutel , plak de sleutel in een teksteditor en sla het tekstbestand op.

    __________________________________

    Als de kopieerbewerking is geslaagd, verandert de tekst op de knop Kopiëren in Gekopieerd.

De Mesh Cloud Scripting-prefab toevoegen

  1. Open de beginpuntscène .

  2. Klik in de hiërarchie met de rechtermuisknop in een lege ruimte en selecteer vervolgens in het contextmenu Mesh Toolkit>Cloud Scripting instellen.

    __________________________________

    Hiermee wordt een GameObject met de naam Mesh Cloud Scripting toegevoegd dat een onderdeel met dezelfde naam heeft gekoppeld.

    __________________________________

    Elk GameObject dat u onder het beheer van cloudscripts wilt hebben, moet als onderliggend element worden toegevoegd aan het Mesh Cloud Scripting GameObject.

    Opmerking: het Mesh Cloud Scripting-onderdeel bevat een eigenschap met de naam Visual Scripting inschakelen. Hierdoor kunnen Mesh-cloudscripts communiceren met visuele scripts. U kunt dit niet-geselecteerd laten.

Voeg de prefab toe voor Station 4

  1. Navigeer in de projectmap naar Assets>MeshCloudScripting en sleep vervolgens 4 - GlobeWithCloudScripting naar de hiërarchie en plaats het als een onderliggend object in Mesh Cloud Scripting.

    __________________________________

    Deze prefab biedt het tekstvak en een geneste prefab met de naam Aarde die het model voor de wereldbol bevat.

    __________________________________

  2. Pas uw weergave aan zodat u direct voor station 4 bent.

    __________________________________

De API-sleutel voor weatherapi.com invoegen

  1. Selecteer in de hiërarchie het Mesh Cloud Scripting GameObject.

  2. Ga in Inspector naar het mesh cloudscriptonderdeel en klik vervolgens op Toepassingsmap openen.

    __________________________________

    Hiermee opent u de map met de bestanden voor Mesh Cloud Scripting in de Windows Bestandenverkenner.

  3. Open het bestand met de naam appsettings. UnityLocalDev.json in de code-editor. De laatste vier regels code in het bestand bevatten configuratie-instellingen.

    __________________________________

    U hoeft niets te doen voor deze eerste regel ...

    "WEATHER_API_URI": "http://api.weatherapi.com/v1/current.json?key="

    ... Maar vervang in de volgende regel de tekst 'Plak de Weer-API-sleutel hier' door de API-sleutel die u eerder hebt gekopieerd.

    __________________________________

    U kunt de laatste twee regels negeren. In het volgende hoofdstuk werken we met die regels.

  4. Sla het JSON-bestand op en sluit het.

Het csproj-bestand bijwerken

  1. Open in het venster Bestandenverkenner waarin de Mesh Cloud Scripting-bestanden worden weergegeven het bestand met de naam StartingPoint.csproj in de code-editor.

    __________________________________

  2. Kopieer de volgende tekst:

    <ItemGroup> <Folder Include="WeatherAPI\" /> </ItemGroup>

    ... en plak het in het bestand net boven </Project> aan het einde van het bestand.

    __________________________________

    Dit zorgt ervoor dat we enkele scripts uit de lokale Map WeatherAPI opnemen.

    __________________________________

  3. Sla het bestand op en sluit het bestand.

Code toevoegen die de wereldbol interactief maakt

  1. Open in het venster Bestandenverkenner waarin de Mesh Cloud Scripting-bestanden worden weergegeven het bestand met de naam App.cs in de code-editor.

    __________________________________

    Het eerste wat we doen is ervoor te zorgen dat wanneer een deelnemer op de wereldbol klikt, de weergaven van de weergegevens worden vernieuwd.

  2. Zoek in het App.cs bestand de eerste opmerking 'Code hier plakken' in de StartAsync() methode.

    __________________________________

  3. Kopieer de onderstaande code.

        var refreshButton = _app.Scene.FindFirstChild("Earth", true) as TransformNode;
        var refreshButtonNode = refreshButton?.FindFirstChild<InteractableNode>(true);
    
        if (refreshButtonNode != null)
        {
            refreshButtonNode.Selected += async (_, _) =>
            {
                await GetCurrentWeather(_latlong);
            };
        }
    
  4. Vervang de opmerking 'Code hier plakken' die u zojuist hebt gevonden door de code die u hebt gekopieerd.

    __________________________________

    De code doet het volgende:

    • Initialiseert de variabele refreshButton met het Earth GameObject in de scène.
    • Initialiseert de variabele refreshButtonNode met de InteractableNode die is gekoppeld aan het Earth GameObject. (Als een GameObject in de scène een Mesh Interactable Setup component attached, which Earth does, the component adds a Mesh Cloud Scripting InteractableNode).
    • Wanneer een deelnemer op de wereldbol klikt, wordt de geselecteerde gebeurtenis van de InteractableNode geactiveerd en wordt de methode GetCurrentWeather aangeroepen. Hiermee wordt een HTTP-aanvraag gegenereerd om de weergegevens op te halen.
  5. Sla het bestand op.

Uw werk testen

  1. Sla het project op in de Unity-editor en druk vervolgens op de knop Afspelen.

  2. Je avatar wordt aan de zijkant van het Sphere Terrace met de eerste drie stations gespoeid. Navigeer naar de tegenovergestelde kant van het Sphere Terrace en plaats uzelf voor Station 4.

    __________________________________

  3. Als u de weergegevens wilt zien, klikt u ergens op de wereldbol. De temperatuur, gemiddelde windsnelheid en piekwindsnelheid worden getoond voor drie steden: 1) Lagos, Nigeria, 2) Dublin, Ierland en 3) Redmond, WA.

    __________________________________

  4. Wanneer u klaar bent, drukt u nogmaals op de knop Afspelen om de afspeelmodus af te sluiten.

Volgende stappen