Поделиться через


Руководство по Сетке 201. Получение данных о погоде в реальном времени

В этой главе мы переместимся на станцию 4, где вы узнаете, как использовать cloud Scripting сетки для получения данных из внутренних или общедоступных источников, а затем визуализировать его в трехмерном контексте в сцене. Как мы обсуждали в главе 1, здесь находится то, что участники в вашем опыте могут использовать эту станцию, чтобы узнать о погодных условиях в трех местах, где они рассматривают строительство ветряной фермы. Участники смогут щелкнуть интерактивный глобус и просмотреть данные о погоде в реальном времени из трех расположений.

Станции 4 и 5 расположены в другом конце террасы Sphere с предыдущих станций.

__________________________________

Настройка для этой станции

Чтобы завершить эту станцию, необходимо вставить ключ в некоторый код, который позволит получить доступ к API данных о погоде. Давайте получите этот ключ теперь, чтобы вам не нужно прерывать рабочий процесс позже.

  1. Перейдите на страницу регистрации weatherapi.com.

  2. На этой странице следуйте инструкциям, чтобы зарегистрироваться в плане пробной версии.

    __________________________________

    Вам потребуется открыть электронную почту, которую они отправляют, активировать свою учетную запись, а затем войти на свой сайт.

  3. На странице "Назад приветствия" нажмите кнопку "Pro Plus Plan".

    __________________________________

  4. В этом руководстве нет необходимости иметь платный план. Нажмите кнопку "Вниз" в разделе "Бесплатный", а затем в появившемся диалоговом окне нажмите кнопку "Закрыть".

    __________________________________

  5. В левом меню в разделе "Панель мониторинга" выберите API.

    __________________________________

  6. Нажмите кнопку "Копировать" рядом с полем ключа API, а затем вставьте ключ в текстовый редактор, а затем сохраните текстовый файл.

    __________________________________

    Если операция копирования выполнена успешно, текст на кнопке "Копировать" изменяется на "Скопировано".

Добавление предварительной проверки облачной скриптов Сетки

  1. Откройте сцену Начальной точки .

  2. В иерархии щелкните правой кнопкой мыши пустое пространство, а затем в контекстном меню выберите Сетка Toolkit>Set up Cloud Scripting.

    __________________________________

    Это добавляет GameObject с именем Mesh Cloud Scripting , который имеет компонент с тем же именем, что и присоединено.

    __________________________________

    Любой gameObject, который вы планируете иметь под контролем облачного скрипта, должен быть добавлен в качестве дочернего элемента в Сетку Cloud Scripting GameObject.

    Примечание. Компонент Cloud Scripting Сетки содержит свойство с именем Enable Visual Scripting. Это позволяет облачным сценариям Сетки взаимодействовать с визуальными скриптами. Вы можете оставить этот неизбранный.

Добавление префаб для станции 4

  1. В папке Project перейдите к Resources>MeshCloudScripting и перетащите 4 — GlobeWithCloudScripting в иерархию и поместите его в качестве дочернего объекта в Cloud Scripting сетки.

    __________________________________

    Этот префаб предоставляет текстовое поле сведений и вложенный префаб с именем Земля , который содержит модель для земного шара.

    __________________________________

  2. Настройте свое представление, чтобы вы находились непосредственно перед станцией 4 и смотрели на станцию 4.

    __________________________________

Вставка ключа API для weatherapi.com

  1. В иерархии выберите объект Mesh Cloud Scripting GameObject.

  2. В инспекторе перейдите к компоненту Сетки Cloud Scripting и щелкните "Открыть папку приложения".

    __________________________________

    Откроется папка, содержащая файлы для облачной скриптов Сетки в Проводник Windows.

  3. Откройте файл с именем appsettings. UnityLocalDev.json в редакторе кода. Последние четыре строки кода в файле содержат параметры конфигурации.

    __________________________________

    Вам не нужно ничего делать для этой первой строки ...

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

    ... но в следующей строке замените текст "Вставить ключ API погоды здесь" на ключ API, скопированный ранее.

    __________________________________

    Вы можете игнорировать последние две строки- мы будем работать с ними в следующей главе.

  4. Сохраните и закройте JSON-файл.

Обновление csproj-файла

  1. В окне проводник, в котором отображаются файлы скриптов Mesh Cloud, откройте файл с именем StartingPoint.csproj в редакторе кода.

    __________________________________

  2. Скопируйте следующий текст:

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

    ... затем вставьте его в файл чуть выше </Project> в конце файла.

    __________________________________

    Это гарантирует, что мы включили некоторые скрипты из локальной папки WeatherAPI .

    __________________________________

  3. Сохранить и закрыть файл.

Добавление кода, который делает глобус интерактивным

  1. В окне проводник, в котором отображаются файлы скриптов Mesh Cloud, откройте файл с именем App.cs в редакторе кода.

    __________________________________

    Первое, что мы сделаем, заключается в том, чтобы, когда участник щелкает земной шар, отображаются данные о погоде обновляются.

  2. В файле App.cs найдите первый комментарий "Вставить код здесь", расположенный StartAsync() внутри метода.

    __________________________________

  3. Скопируйте приведенный ниже код.

        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. Замените комментарий "Вставить здесь", который вы только что нашли с скопированным кодом.

    __________________________________

    Код делает следующее:

    • Инициализирует переменную refreshButton с помощью Объекта GameObject в сцене.
    • Инициализирует переменную refreshButtonNode с помощью объекта InteractableNode, подключенного к Объекту GameObject Земли. (Если gameObject в сцене имеет Подключенный компонент настройки взаимодействия сетки, который выполняет Земля , компонент добавляет компонент Mesh Cloud Scripting InteractableNode).
    • Когда участник щелкает по всему миру, он запускает событие "Выбранный" в Приложении InteractableNode и вызывает метод GetCurrentWeather. Это создает HTTP-запрос для получения данных о погоде.
  5. Сохраните файл.

Проверка результатов своих действий

  1. В редакторе Unity сохраните проект и нажмите кнопку "Воспроизвести".

  2. Ваш аватар порожден на стороне Террасы Sphere, которая содержит первые три станции. Перейдите к противоположной стороне террасы Sphere, а затем позиционируйте себя перед станцией 4.

    __________________________________

  3. Чтобы просмотреть данные о погоде, щелкните в любом месте земного шара. Температура, средняя скорость ветра и пиковая скорость ветра показаны для трех городов: 1) Лагос, Нигерия, 2) Дублин, Ирландия и 3) Редмонд, WA.

    __________________________________

  4. По завершении нажмите кнопку воспроизведения еще раз, чтобы выйти из режима воспроизведения.

Next Steps