Sdílet prostřednictvím


Mesh 201 Tutorial Kapitola 5: Získání živých dat o počasí

V této kapitole přejdeme k stanici 4, kde se dozvíte, jak pomocí Skriptování cloudu mesh získat data z interních nebo veřejných zdrojů a pak je vizualizovat v 3D kontextu ve vaší scéně. Jak jsme si probrali v kapitole 1, prostor zde je, že účastníci ve vašem prostředí mohou tuto stanici využít k tomu, aby se dozvěděli o povětrnostních podmínkách na třech místech, kde uvažují o budování větrné farmy. Účastníci budou moct kliknout na interaktivní glóbus a zobrazit živá data o počasí ze tří míst.

Stanice 4 a 5 se nacházejí na druhém konci terasy Sphere z předchozích stanic.

__________________________________

Nastavení pro tuto stanici

Abyste mohli tuto stanici dokončit, musíte do kódu vložit klíč , který vám umožní přístup k rozhraní API pro data o počasí. Pojďme teď tento klíč získat, abyste nemuseli pracovní postup později přerušit.

  1. Přejděte na weatherapi.com registrační stránku.

  2. Na této stránce si podle pokynů zaregistrujte zkušební plán.

    __________________________________

    Budete muset otevřít e-mail, který vám poslal, aktivovat váš účet a pak se přihlásit na jejich web.

  3. Na úvodní stránce Zpět klikněte na Plán Pro Plus.

    __________________________________

  4. Pro účely tohoto kurzu není nutné mít placený plán. Klikněte na tlačítko Downgrade pod položkou Free (Free) a potom v dialogovém okně, které se zobrazí, klikněte na Zavřít.

    __________________________________

  5. V nabídce vlevo v části Řídicí panel vyberte rozhraní API.

    __________________________________

  6. Vyberte tlačítko Kopírovat vedle pole Klíč rozhraní API, pak klíč vložte do textového editoru a pak textový soubor uložte.

    __________________________________

    Pokud je operace kopírování úspěšná, text na tlačítku Kopírovat se změní na Zkopírované.

Přidání předfaktoru skriptování cloudových sítí

  1. Otevřete scénu StartingPoint .

  2. V hierarchii klikněte pravým tlačítkem na prázdné místo a potom v místní nabídce vyberte Mesh Toolkit>Set up Cloud Scripting.

    __________________________________

    Tím se přidá GameObject s názvem Mesh Cloud Scripting , který má komponentu se stejným názvem, který je připojený.

    __________________________________

    Jakýkoli Objekt GameObject, který chcete mít pod kontrolou cloudového skriptování, musí být přidán jako dítě do objektu GameObject Mesh Cloud Scripting .

    Poznámka: Komponenta Skriptování cloudu Mesh obsahuje vlastnost s názvem Povolit vizuální skriptování. To umožňuje cloudovým skriptům Mesh komunikovat s vizuálními skripty. Tuto možnost můžete nechat nevybranou.

Přidání prefab pro stanici 4

  1. Ve složce Project přejděte na Assets>MeshCloudScripting a přetáhněte 4 – GlobeWithCloudScripting do hierarchie a umístěte ho jako podřízený objekt do Mesh Cloud Scripting.

    __________________________________

    Tento prefab poskytuje textové informační pole a vnořený prefab s názvem Země , který obsahuje model pro zeměkoule.

    __________________________________

  2. Upravte zobrazení tak, abyste byli přímo před stanicemi a dívali se na stanici 4.

    __________________________________

Vložení klíče rozhraní API pro weatherapi.com

  1. V hierarchii vyberte objekt GameObject mesh cloud scripting.

  2. V inspektoru přejděte do komponenty Mesh Cloud Scripting a klikněte na Otevřít složku aplikace.

    __________________________________

    Tím se otevře složka, která obsahuje soubory pro Skriptování cloudu Mesh ve Windows Průzkumník souborů.

  3. Otevřete soubor s názvem appsettings. UnityLocalDev.json v editoru kódu. Poslední čtyři řádky kódu v souboru obsahují nastavení konfigurace.

    __________________________________

    Pro tento první řádek nemusíte nic dělat...

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

    ... ale na dalším řádku nahraďte text "Vložit klíč rozhraní WEATHER API sem" klíčem rozhraní API, který jste zkopírovali dříve.

    __________________________________

    Poslední dva řádky můžete ignorovat – budeme s nimi pracovat v další kapitole.

  4. Uložte a zavřete soubor JSON.

Aktualizace souboru csproj

  1. V okně Průzkumník souborů, které zobrazuje soubory skriptování cloudu Mesh, otevřete soubor s názvem StartingPoint.csproj v editoru kódu.

    __________________________________

  2. Zkopírujte následující text:

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

    ... a pak ho vložte do souboru těsně nad </Project> koncem souboru.

    __________________________________

    Tím se zajistí, že do místní složky WeatherAPI zahrneme některé skripty.

    __________________________________

  3. Soubor uložte a zavřete.

Přidání kódu, který zpřístupňuje glóbus jako interaktivní

  1. V okně Průzkumník souborů, které zobrazuje soubory Skriptování cloudu Mesh, otevřete soubor s názvem App.cs v editoru kódu.

    __________________________________

    První věcí, kterou uděláme, je zajistit, že když účastník klikne na glóbus, aktualizují se zobrazení dat o počasí.

  2. V souboru App.cs vyhledejte první komentář Vložit kód sem, který se nachází uvnitř StartAsync() metody.

    __________________________________

  3. Zkopírujte následující kód.

        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. Nahraďte komentář Vložit kód sem, který jste právě našli s kódem, který jste zkopírovali.

    __________________________________

    Kód provede následující:

    • Inicializuje proměnnou refreshButton objektem GameObject země ve scéně.
    • Inicializuje refreshButtonNode proměnnou InteractableNode připojenou k Objektu GameObject Země . (Pokud má objekt GameObject ve scéně Komponenta Mesh Interactable Setup připojená, což Země dělá, přidá komponentu Mesh Cloud Scripting InteractableNode).
    • Když účastník klikne na glóbus, aktivuje událost Selected uzlu InteractableNode a zavolá GetCurrentWeather metoda. Tím se vygeneruje požadavek HTTP pro získání dat o počasí.
  5. Uložte soubor.

Otestování práce

  1. V Unity Editoru uložte projekt a stiskněte tlačítko Přehrát.

  2. Váš avatar je třebován na straně Sphere Terrace, která obsahuje první tři stanice. Přejděte na opačnou stranu terasy Sphere a pak se umístěte před stanici 4.

    __________________________________

  3. Pokud chcete zobrazit data o počasí, klikněte na libovolné místo na světě. Teplota, průměrná rychlost větru a maximální rychlost větru se zobrazují pro tři města: 1) Lagos, Nigérie, 2) Dublin, Irsko a 3) Redmond, WA.

    __________________________________

  4. Až budete hotovi, znovu stiskněte tlačítko Přehrát a ukončete režim přehrávání.

Další kroky