Partilhar via


Tutorial do Mesh 201 Capítulo 4: Carregar uma URL de um ativo 3D

Neste capítulo, avançamos para a Estação 3 e exploramos uma maneira de carregar dados da Web em um WebSlate. Há um GameObject 3D na cena que representa o planeta Terra; Vamos chamá-lo de "O Globo". Atualizaremos um script para que, quando um participante da sua experiência clicar no globo, a latitude e a longitude do local clicado sejam capturadas e essas coordenadas sejam incorporadas a uma URL do Bing Maps como parâmetros. Uma solicitação HTTP é executada usando essa URL; O Bing Maps fornece um mapa da área escolhida e envia-o para um WebSlate próximo.

Uma captura de tela de um computador Descrição

Experimente o projeto

  1. Ajuste a sua vista para que esteja diretamente em frente e a olhar para a Estação 3.

    Uma captura de tela de um computador Descrição

    Como você pode ver, já há um WebSlate na cena com algum texto informativo acima dele, assim como o globo. Vamos executar o projeto e ver o que acontece.

  2. Clique no botão Unity editor Play. O WebSlate exibe o site do Bing Maps.

    Uma captura de tela de um computador Descrição

  3. Clique em vários pontos diferentes no objeto Terra . Observe que, não importa onde você clique, o WebSlate continua exibindo a mesma página do Bing Maps. Queremos alterar isso para que, quando você clicar no objeto Earth , a área geográfica em que você clicou apareça no WebSlate. Adicionaremos um nó a um script que realiza isso em um momento, mas antes disso, daremos uma breve olhada nos scripts.

  4. Clique no botão Unity editor Play para sair do modo Play.

Explore o script da Terra

  1. Na hierarquia, recolher o GameObject chamado 2 - StaticContentWebslate.

  2. Expanda 3 - LoadURL e observe que ele tem objetos filho chamados EarthActions e Earth.

    Uma captura de tela de um computador Descrição

    Cada um desses objetos tem uma máquina de script anexada com o Source definido como "Graph".

    Uma captura de tela de um computador Descrição

  3. Selecione o Earth GameObject. Seu gráfico de script aparece na janela Script Graph .

O gráfico de script, chamado localização do globo no Webslate, é projetado para detetar um clique no globo e saber a localização geográfica precisa desse clique (latitude e longitude) para que um mapa dessa área possa ser exibido no WebSlate.

Uma captura de tela de um computador Descrição

Como você pode ver, há muita coisa acontecendo neste gráfico de roteiro. Não precisamos fazer nenhuma alteração nele, mas se você estiver curioso, pode reservar um momento aqui para estudar o gráfico e entender melhor como o objeto da Terra funciona.

Explore o script EarthActions

Este script é onde precisamos fazer nossa atualização.

  1. Na Hierarquia, selecione EarthActions GameObject. Seu gráfico de script aparece na janela Script Graph .

    Este gráfico de script é chamado Load Webslate from Globe click e tem três grupos: Custom Default Webslate Behavior and URL Builder e Update webslate.

    Uma captura de tela de um computador Descrição

  2. O primeiro grupo contém um nó chamado Web Slate: Carregar com um valor da URL do Bing Maps.

    Uma captura de tela de um computador Descrição

    No momento, as coisas estão configuradas para que toda vez que você clicar no objeto do Earth , essa URL seja carregada no WebSlate.

  3. No grupo Construtor de URLs, o primeiro nó, Get Variable: Object, carrega a variável que contém a coordenada que foi clicada no objeto Earth.

    Uma captura de tela de um computador Descrição

  4. Os próximos nós após o nó Microsoft Mesh: On State Changed pegam essa coordenada, convertem-na em uma cadeia de caracteres e anexam-na como um parâmetro ao final da URL do Bing Maps no nó String: Concat .

    Uma captura de tela de um computador Descrição

  5. O nó set Variable intitializa a variável WebSlateURL com a URL.

    Uma captura de tela de um computador Descrição

Agora só precisamos garantir que esse URL (que, naturalmente, muda toda vez que o Earth é clicado) seja carregado no WebSlate.

Atualizar o script EarthActions

  1. Arraste um conector da porta Control Output do nó set Variable: Object e crie um novo nó Web Slate: Load . (No Fuzzy Finder, procure por Web Slate: Carregar (URL).)

    Uma captura de tela de um computador Descrição

  2. Arraste um conector da porta Data Output do nó set Variable: Object com a variável "WebSlateURL" e anexe-o à porta Url Data Input do nó Web Slate: Load .

    Uma captura de tela de um computador Descrição

  3. Arraste um conector da porta de saída de dados do nó set Variable: Object com a variável "WebSlate" e, em seguida, anexe-o à primeira porta de entrada de dados do nó Web Slate: Load .

    Uma captura de tela de um computador Descrição

Teste o seu trabalho

  1. Salve o projeto e pressione o botão Unity Editor Play.

  2. Certifique-se de que está posicionado em frente à Estação 3.

  3. Clique em vários lugares no objeto Terra . Como observado anteriormente, cada vez que você clica, a latitude e a longitude do local clicado são capturadas e essas coordenadas são incorporadas a uma URL do Bing Maps como parâmetros. Uma solicitação HTTP é executada usando essa URL; O Bing Maps fornece um mapa da área escolhida e envia-o para o WebSlate próximo.

    Uma captura de tela de um computador Descrição

Notas

  • O WebSlate é interativo dentro de um evento. Um participante pode clicar nos botões +/- para aumentar ou diminuir o zoom, arrastar o mapa para ajustar sua posição ou clicar em links. Observe, no entanto, que outros participantes da experiência não verão essas alterações; eles só verão uma atualização quando o globo for clicado novamente.

  • Se você ativar o recurso Valores na janela Gráfico de Script e, em seguida, observar o script enquanto clica no globo, poderá ver a latitude e a longitude do local clicado fluindo dos conectores do nó Microsoft Mesh: On State Changed.

    Uma captura de tela de um computador Descrição

Passos Seguintes