Я пытаюсь перейти на приложение Mapbox с Unity. Я хочу получить пункт назначения от пользователя. Я имею в виду, что пользователь напишет, куда он хочет идти, и я нанесу дорогу на карту в соответствии с пунктом назначения.
Я попытался перезагрузить скрипт карты, но это просто геолокация карты.
namespace Mapbox.Examples
{
using Mapbox.Geocoding;
using UnityEngine.UI;
using Mapbox.Unity.Map;
using UnityEngine;
using System;
using System.Collections;
public class ReloadMap : MonoBehaviour
{
Camera _camera;
Vector3 _cameraStartPos;
AbstractMap _map;
[SerializeField]
ForwardGeocodeUserInput _forwardGeocoder;
[SerializeField]
Slider _zoomSlider;
private HeroBuildingSelectionUserInput[] _heroBuildingSelectionUserInput;
Coroutine _reloadRoutine;
WaitForSeconds _wait;
void Awake()
{
_camera = Camera.main;
_cameraStartPos = _camera.transform.position;
_map = FindObjectOfType<AbstractMap>();
if(_map == null)
{
Debug.LogError("Error: No Abstract Map component found in scene.");
return;
}
if (_zoomSlider != null)
{
_map.OnUpdated += () => { _zoomSlider.value = _map.Zoom; };
_zoomSlider.onValueChanged.AddListener(Reload);
}
if(_forwardGeocoder != null)
{
_forwardGeocoder.OnGeocoderResponse += ForwardGeocoder_OnGeocoderResponse;
}
_heroBuildingSelectionUserInput = GetComponentsInChildren<HeroBuildingSelectionUserInput>();
if(_heroBuildingSelectionUserInput != null)
{
for (int i = 0; i < _heroBuildingSelectionUserInput.Length; i++)
{
_heroBuildingSelectionUserInput[i].OnGeocoderResponse += ForwardGeocoder_OnGeocoderResponse;
}
}
_wait = new WaitForSeconds(.3f);
}
void ForwardGeocoder_OnGeocoderResponse(ForwardGeocodeResponse response)
{
if (null != response.Features && response.Features.Count > 0)
{
int zoom = _map.AbsoluteZoom;
_map.UpdateMap(response.Features[0].Center, zoom);
}
}
void ForwardGeocoder_OnGeocoderResponse(ForwardGeocodeResponse response, bool resetCamera)
{
if (response == null)
{
return;
}
if (resetCamera)
{
_camera.transform.position = _cameraStartPos;
}
ForwardGeocoder_OnGeocoderResponse(response);
}
void Reload(float value)
{
if (_reloadRoutine != null)
{
StopCoroutine(_reloadRoutine);
_reloadRoutine = null;
}
_reloadRoutine = StartCoroutine(ReloadAfterDelay((int)value));
}
IEnumerator ReloadAfterDelay(int zoom)
{
yield return _wait;
_camera.transform.position = _cameraStartPos;
_map.UpdateMap(_map.CenterLatitudeLongitude, zoom);
_reloadRoutine = null;
}
}
}
В приведенном примере это просто возврат файла геойсона. Я не смог нанести маршрут на карту в соответствии с местоположением письма. Как я могу определить пункт назначения на карте по тексту.