Mesh 201-zelfstudie hoofdstuk 4: Een URL laden van een 3D-asset
In dit hoofdstuk gaan we verder naar Station 3 en verkennen we een manier om gegevens van het web naar een WebSlate te laden. Er is een 3D GameObject in de scène die de planeet aarde vertegenwoordigt; We noemen het 'de wereldbol'. We werken een script bij, zodat wanneer een deelnemer in uw ervaring op de wereldbol klikt, de breedte- en lengtegraad van de opgeslagen locatie worden vastgelegd en deze coördinaten als parameters worden opgenomen in een Bing Kaarten-URL. Een HTTP-aanvraag wordt uitgevoerd met behulp van deze URL; Bing Kaarten biedt een kaart van het gekozen gebied en verzendt deze naar een nabijgelegen WebSlate.
Het project uitproberen
Pas uw weergave aan zodat u direct voor station 3 staat en kijkt.
Zoals u kunt zien, is er al een WebSlate in de scène met een aantal informatieve tekst erboven, evenals de wereldbol. Laten we het project uitvoeren en kijken wat er gebeurt.
Klik op de knop Play van de Unity-editor. In WebSlate wordt de website van Bing Kaarten weergegeven.
Klik op verschillende plekken op het object Aarde . Houd er rekening mee dat ongeacht waar u klikt, de webslate dezelfde pagina van Bing Kaarten weergeeft. We willen dit wijzigen, zodat wanneer u op het object Aarde klikt, het geografische gebied dat u hebt geklikt, wordt weergegeven op de WebSlate. We voegen een knooppunt toe aan een script dat dit binnen een ogenblik doet, maar daarvoor bekijken we de scripts kort.
Klik op de knop Play van de Unity-editor om de afspeelmodus af te sluiten.
Het script Earth verkennen
Vouw in de hiërarchie het GameObject met de naam 2 - StaticContentWebslate samen.
Vouw 3 uit : LoadURL en houd er rekening mee dat deze onderliggende objecten heeft met de naam EarthActions en Earth.
Elk van deze objecten bevat een scriptmachine die is gekoppeld aan de bron die is ingesteld op 'Graph'.
Selecteer het Object Earth GameObject. De scriptgrafiek wordt weergegeven in het venster Script Graph .
De scriptgrafiek, de locatie Globe op Webslate, is ontworpen om een klik op de wereldbol te detecteren en om de exacte geografische locatie van die klik (breedtegraad en lengtegraad) te kennen, zodat een kaart van dat gebied kan worden weergegeven op de WebSlate.
Zoals u kunt zien, is er veel aan de hand in deze scriptgrafiek. We hoeven er geen wijzigingen in aan te brengen, maar als u nieuwsgierig bent, kunt u hier even kijken om de grafiek te bestuderen en een beter inzicht te krijgen in hoe het object Earth werkt.
Het Script EarthActions verkennen
Dit script is de plek waar we onze update moeten maken.
Selecteer in de hiërarchie het EarthActions GameObject. De scriptgrafiek wordt weergegeven in het venster Script Graph .
Deze scriptgrafiek heeft de naam Load Webslate from Globe click and has three groups: Custom Default Webslate Behavior and URL Builder, and Update webslate.
De eerste groep bevat een knooppunt met de naam Web Slate: Laden met een waarde van de URL van Bing Kaarten.
Op dit moment worden dingen zo ingesteld dat elke keer dat u op het object Aarde klikt, deze URL in de WebSlate wordt geladen.
In de groep URL Builder laadt het eerste knooppunt, Get Variable: Object, de variabele die de coördinaat bevat waarop is geklikt op het object Earth .
De volgende paar knooppunten na het knooppunt Microsoft Mesh: On State Changed nemen die coördinaat, converteren naar een tekenreeks en koppelen als een parameter aan het einde van de URL van Bing Kaarten in de tekenreeks: Concat-knooppunt .
Met het knooppunt Variabele instellen wordt de variabele WebSlateURL geïnitialiseerd met de URL.
We moeten er nu alleen voor zorgen dat deze URL (die natuurlijk verandert telkens wanneer op aarde wordt geklikt) in de WebSlate wordt geladen.
Het Script EarthActions bijwerken
Sleep een connector vanuit de poort Uitvoer van het besturingselement van de setvariabele: Objectknooppunt en maak vervolgens een nieuwe web-Slate: knooppunt laden . (Zoek in de Fuzzy Finder naar Web-slate: Laden (URL).)
Sleep een connector van de poort Gegevensuitvoer van de setvariabele: Objectknooppunt met de variabele WebSlateURL en koppel deze vervolgens aan de POORT URL-gegevensinvoer van het web-Slate: knooppunt laden .
Sleep een connector vanaf de poort Gegevensuitvoer van de setvariabele: Objectknooppunt met de variabele WebSlate en koppel deze vervolgens aan de eerste gegevensinvoerpoort van het web-Slate: knooppunt laden .
Uw werk testen
Sla het project op en druk vervolgens op de knop Play van unity-editor.
Zorg ervoor dat u voor Station 3 staat.
Klik op verschillende plaatsen op het object Aarde . Zoals eerder is aangegeven, worden de breedtegraad en lengtegraad van de opgeslagen locatie vastgelegd en worden deze coördinaten opgenomen in een Bing Kaarten-URL als parameters. Een HTTP-aanvraag wordt uitgevoerd met behulp van deze URL; Bing Kaarten biedt een kaart van het gekozen gebied en verzendt het naar de nabijgelegen WebSlate.
Notes
WebSlate is interactief binnen een gebeurtenis. Een deelnemer kan op de knoppen +/- klikken om in of uit te zoomen, of de kaart slepen om de positie ervan aan te passen of op koppelingen klikken. Houd er echter rekening mee dat andere deelnemers in de ervaring deze wijzigingen niet zien; ze zien alleen een update wanneer de wereldbol opnieuw wordt geklikt.
Als u de functie Waarden inschakelt in het venster Script Graph en vervolgens het script bekijkt terwijl u op de wereldbol klikt, ziet u de breedtegraad en lengtegraad van de locatie waarop u hebt geklikt die uit de connectors stroomt vanuit het knooppunt Microsoft Mesh: On State Changed.