Tutorial de Mesh 201 Capítulo 4: Carga de una dirección URL desde un recurso 3D
En este capítulo, avanzamos a la estación 3 y exploramos una manera de cargar datos desde la web en un WebSlate. Hay un GameObject 3D en la escena que representa el planeta Tierra; lo llamaremos "el globo". Actualizaremos un script para que cuando un asistente de la experiencia haga clic en el globo, se capturan la latitud y la longitud de la ubicación en la que se hace clic y estas coordenadas se incorporan a una dirección URL de Mapas de Bing como parámetros. Se ejecuta una solicitud HTTP mediante esta dirección URL; Mapas de Bing proporciona un mapa del área elegida y lo envía a un webSlate cercano.
Prueba del proyecto
Ajusta tu vista para que estés directamente delante de y mirando a la estación 3.
Como puede ver, ya hay un WebSlate en la escena con algún texto informativo sobre él, así como el globo. Vamos a ejecutar el proyecto y ver lo que sucede.
Haga clic en el botón Reproducir del editor de Unity. WebSlate muestra el sitio web de Mapas de Bing.
Haga clic en varios puntos diferentes en el objeto Earth . Tenga en cuenta que, independientemente de dónde haga clic, WebSlate sigue mostrando la misma página mapas de Bing. Queremos cambiar esto para que cuando haga clic en el objeto Earth , el área geográfica en la que ha hecho clic aparece en WebSlate. Vamos a agregar un nodo a un script que lo lleve a cabo en un momento, pero antes de eso, echaremos un breve vistazo a los scripts.
Haga clic en el botón Reproducir del editor de Unity para salir del modo de reproducción.
Exploración del script de la Tierra
En hierarchy (Jerarquía), contraiga gameObject denominado 2 - StaticContentWebslate.
Expanda 3 - LoadURL y observe que tiene objetos secundarios denominados EarthActions y Earth.
Cada uno de estos objetos tiene una máquina de script asociada con el valor source establecido en "Graph".
Seleccione el Objeto GameObject de la Tierra . Su gráfico de scripts aparece en la ventana Script Graph (Gráfico de scripts).
El gráfico de scripts, denominado Ubicación de Globo en Webslate, está diseñado para detectar un clic en el globo y conocer la ubicación geográfica precisa de ese clic (latitud y longitud) para que se pueda mostrar un mapa de esa área en WebSlate.
Como puede ver, hay muchas cosas que suceden en este gráfico de scripts. No es necesario realizar ningún cambio en él, pero si tiene curiosidad, puede tomar un momento aquí para estudiar el gráfico y comprender mejor cómo funciona el objeto Earth .
Exploración del script EarthActions
Este script es donde necesitamos realizar la actualización.
En Hierarchy (Jerarquía), seleccione el objeto GameObject EarthActions . Su gráfico de scripts aparece en la ventana Script Graph (Gráfico de scripts).
Este grafo de script se denomina Load Webslate from Globe click y tiene tres grupos: Custom Default Webslate Behavior and URL Builder, and Update webslate.
El primer grupo contiene un nodo denominado Web Slate: Cargar con un valor de la dirección URL de Mapas de Bing.
En este momento, las cosas se configuran para que cada vez que haga clic en el objeto Earth , esta dirección URL se carga en WebSlate.
En el grupo Generador de direcciones URL, el primer nodo, Get Variable: Object, carga la variable que contiene la coordenada en la que se hizo clic en el objeto Earth .
Los siguientes nodos después del nodo Microsoft Mesh: On State Changed toman esa coordenada, lo convierten en una cadena y lo adjuntan como parámetro al final de la dirección URL de Mapas de Bing en el nodo String: Concat .
El nodo Establecer variable inicializa la variable WebSlateURL con la dirección URL.
Ahora solo tenemos que asegurarnos de que esta dirección URL (que, naturalmente, cambia cada vez que se hace clic en la Tierra ) se carga en WebSlate.
Actualización del script EarthActions
Arrastre un conector desde el puerto Salida de control del nodo Establecer variable: objeto y, a continuación, cree un nuevo nodo Pizarra web: Cargar . (En el Buscador aproximada, busque Pizarra web: carga (URL)).
Arrastre un conector desde el puerto de salida de datos del nodo Set Variable: Object con la variable "WebSlateURL" y, a continuación, adjunte al puerto de entrada de datos url del nodo Web Slate: Load .
Arrastre un conector desde el puerto de salida de datos del nodo Set Variable: Object con la variable "WebSlate" y, a continuación, adjunte al primer puerto de entrada de datos del nodo Web Slate: Load .
Comprobación del trabajo
Guarde el proyecto y presione el botón De reproducción del editor de Unity.
Asegúrese de que está situado delante de la estación 3.
Haga clic en varios lugares del objeto Earth . Como se indicó anteriormente, cada vez que haga clic, se capturan la latitud y la longitud de la ubicación en la que se hace clic y estas coordenadas se incorporan a una dirección URL de Mapas de Bing como parámetros. Se ejecuta una solicitud HTTP mediante esta dirección URL; Mapas de Bing proporciona un mapa del área elegida y lo envía al webSlate cercano.
Notas
WebSlate es interactivo dentro de un evento. Un asistente puede hacer clic en los botones +/- para acercar o alejar, o arrastrar el mapa para ajustar su posición o hacer clic en vínculos. Tenga en cuenta, sin embargo, que otros asistentes de la experiencia no verán estos cambios; solo verán una actualización cuando se vuelva a hacer clic en el globo.
Si activa la característica Valores en la ventana Script Graph y, a continuación, ve el script mientras hace clic en el globo, puede ver la latitud y la longitud de la ubicación en la que se hace clic fuera de los conectores desde el nodo Microsoft Mesh: On State Changed .