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.
Přejděte na weatherapi.com registrační stránku.
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.
Na úvodní stránce Zpět klikněte na Plán Pro Plus.
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.
V nabídce vlevo v části Řídicí panel vyberte rozhraní API.
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í
Otevřete scénu StartingPoint .
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
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.
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
V hierarchii vyberte objekt GameObject mesh cloud scripting.
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ů.
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.
Uložte a zavřete soubor JSON.
Aktualizace souboru csproj
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.
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.
Soubor uložte a zavřete.
Přidání kódu, který zpřístupňuje glóbus jako interaktivní
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í.
V souboru App.cs vyhledejte první komentář Vložit kód sem, který se nachází uvnitř
StartAsync()
metody.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); }; }
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í.
Uložte soubor.
Otestování práce
V Unity Editoru uložte projekt a stiskněte tlačítko Přehrát.
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.
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.
Až budete hotovi, znovu stiskněte tlačítko Přehrát a ukončete režim přehrávání.