Compartilhar via


Tutorial do Mesh 201 Capítulo 5: Obter dados meteorológicos ao vivo

Neste capítulo, avançamos para a Estação 4, onde você aprenderá a usar o Mesh Cloud Scripting para obter dados de fontes internas ou públicas e, em seguida, visualizá-los em um contexto 3D em sua cena. Como discutimos no Capítulo 1, a premissa aqui é que os participantes de sua experiência podem usar esta estação para aprender sobre as condições climáticas em três locais onde estão pensando em construir um parque eólico. Os participantes poderão clicar em um globo interativo e visualizar dados meteorológicos ao vivo dos três locais.

As estações 4 e 5 estão localizadas na outra extremidade do Sphere Terrace das estações anteriores.

__________________________________

Configurando para esta estação

Para concluir esta estação, você precisará inserir uma chave em algum código que permitirá acessar a API de dados meteorológicos. Vamos obter essa chave agora para que você não precise interromper seu fluxo de trabalho mais tarde.

  1. Navegue até a página de inscrição weatherapi.com.

  2. Nessa página, siga as instruções para se inscrever no plano de avaliação.

    __________________________________

    Você precisará abrir o e-mail que eles enviam, ativar sua conta e fazer login no site deles.

  3. Na página Bem-vindo de volta , clique em "Plano Pro Plus".

    __________________________________

  4. Para este tutorial, não é necessário ter um plano pago. Clique no botão Downgrade em "Grátis" e, na caixa de diálogo que aparece, clique em Fechar.

    __________________________________

  5. No menu do lado esquerdo, em Painel, selecione API.

    __________________________________

  6. Selecione o botão Copiar ao lado do campo Chave de API, cole a chave em um editor de texto e salve o arquivo de texto.

    __________________________________

    Se a operação de cópia for bem-sucedida, o texto no botão Copiar será alterado para Copiado.

Adicionar o pré-fabricado Script de Nuvem de Malha

  1. Abra a cena do StartingPoint .

  2. Na Hierarquia, clique com o botão direito do mouse em um espaço vazio e, no menu de contexto, selecione Mesh Toolkit>Set up Cloud Scripting.

    __________________________________

    Isso adiciona um GameObject chamado Mesh Cloud Scripting que tem um componente com o mesmo nome anexado.

    __________________________________

    Qualquer GameObject que você pretende ter sob o controle do script de nuvem deve ser adicionado como filho ao GameObject de script de nuvem de malha.

    Observação: o componente Script de nuvem de malha contém uma propriedade chamada Ativar script visual. Isso permite que os scripts de nuvem do Mesh se comuniquem com scripts visuais. Você pode deixar isso desmarcado.

Adicionar o pré-fabricado para a Estação 4

  1. Na pasta Project, navegue até Assets>MeshCloudScripting e arraste 4 - GlobeWithCloudScripting para a Hierarquia e coloque-o como um objeto filho para Mesh Cloud Scripting.

    __________________________________

    Esse pré-fabricado fornece a caixa de informações de texto e um pré-fabricado aninhado chamado Terra que contém o modelo do globo.

    __________________________________

  2. Ajuste sua visualização para que você esteja diretamente na frente e olhando para a Estação 4.

    __________________________________

Insira a chave de API para weatherapi.com

  1. Na Hierarquia, selecione o GameObject de script de nuvem de malha.

  2. No Inspetor, navegue até o componente Script de nuvem de malha e clique em Abrir pasta do aplicativo.

    __________________________________

    Isso abre a pasta que contém os arquivos para Script de Nuvem de Malha no Explorador de Arquivos do Windows.

  3. Abra o arquivo chamado appsettings. UnityLocalDev.json em seu editor de código. As últimas quatro linhas de código no arquivo contêm definições de configuração.

    __________________________________

    Você não precisa fazer nada para esta primeira linha ...

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

    ... mas na próxima linha, substitua o texto "Colar chave de API do clima aqui" pela chave de API que você copiou anteriormente.

    __________________________________

    Você pode ignorar as duas últimas linhas - trabalharemos com elas no próximo capítulo.

  4. Salve e feche o arquivo JSON.

Atualizar o arquivo csproj

  1. Na janela Explorador de Arquivos que exibe os arquivos de Script de Nuvem de Malha, abra o arquivo chamado StartingPoint.csproj no editor de código.

    __________________________________

  2. Copie o seguinte texto:

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

    ... e, em seguida, cole-o no arquivo logo acima </Project> no final do arquivo.

    __________________________________

    Isso garante que incluamos alguns scripts da pasta WeatherAPI local.

    __________________________________

  3. Salve e feche o arquivo.

Adicione código que torna o globo interativo

  1. Na janela Explorador de Arquivos que exibe os arquivos de Script da Nuvem de Malha, abra o arquivo chamado App.cs no editor de código.

    __________________________________

    A primeira coisa que faremos é garantir que, quando um participante clicar no globo, as exibições dos dados meteorológicos sejam atualizadas.

  2. No arquivo App.cs, encontre o primeiro comentário "Colar código aqui" localizado dentro do StartAsync() método.

    __________________________________

  3. Copie o código abaixo.

        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. Substitua o comentário "Cole o código aqui" que você acabou de encontrar pelo código que você copiou.

    __________________________________

    O código faz o seguinte:

    • Inicializa a variável refreshButton com o GameObject do Google Earth na cena.
    • Inicializa a variável refreshButtonNode com o InteractableNode anexado ao GameObject do Google Earth. (Se um GameObject na cena tiver um Configuração interativa de malha anexada, o que o Google Earth faz, o componente adiciona um Script de nuvem de malha (InteractableNode).
    • Quando um participante clica no globo, ele dispara o evento Selected do InteractableNode e chama o método GetCurrentWeather. Isso gera uma solicitação HTTP para obter os dados meteorológicos.
  5. Salve o arquivo.

Teste o trabalho

  1. No Editor do Unity, salve o projeto e pressione o botão Reproduzir.

  2. Seu avatar é gerado no lado do Sphere Terrace que contém as três primeiras estações. Navegue até o lado oposto do Sphere Terrace e posicione-se em frente à Estação 4.

    __________________________________

  3. Para ver os dados meteorológicos, clique em qualquer lugar do globo. A temperatura, a velocidade média do vento e a velocidade máxima do vento são mostradas para três cidades: 1) Lagos, Nigéria, 2) Dublin, Irlanda e 3) Redmond, WA.

    __________________________________

  4. Quando terminar, pressione o botão Reproduzir novamente para sair do modo Jogar.

Próximas etapas