[TASK] Initial commit with basic product setup

This commit is contained in:
2019-08-18 13:50:14 +02:00
commit 01a66a8e1f
2548 changed files with 167528 additions and 0 deletions

View File

@@ -0,0 +1,86 @@
namespace Mapbox.Examples
{
using Mapbox.Unity.Location;
using Mapbox.Unity.Utilities;
using Mapbox.Unity.Map;
using UnityEngine;
public class PositionWithLocationProvider : MonoBehaviour
{
[SerializeField]
private AbstractMap _map;
/// <summary>
/// The rate at which the transform's position tries catch up to the provided location.
/// </summary>
[SerializeField]
float _positionFollowFactor;
/// <summary>
/// Use a mock <see cref="T:Mapbox.Unity.Location.TransformLocationProvider"/>,
/// rather than a <see cref="T:Mapbox.Unity.Location.EditorLocationProvider"/>.
/// </summary>
[SerializeField]
bool _useTransformLocationProvider;
bool _isInitialized;
/// <summary>
/// The location provider.
/// This is public so you change which concrete <see cref="T:Mapbox.Unity.Location.ILocationProvider"/> to use at runtime.
/// </summary>
ILocationProvider _locationProvider;
public ILocationProvider LocationProvider
{
private get
{
if (_locationProvider == null)
{
_locationProvider = _useTransformLocationProvider ?
LocationProviderFactory.Instance.TransformLocationProvider : LocationProviderFactory.Instance.DefaultLocationProvider;
}
return _locationProvider;
}
set
{
if (_locationProvider != null)
{
_locationProvider.OnLocationUpdated -= LocationProvider_OnLocationUpdated;
}
_locationProvider = value;
_locationProvider.OnLocationUpdated += LocationProvider_OnLocationUpdated;
}
}
Vector3 _targetPosition;
void Start()
{
LocationProvider.OnLocationUpdated += LocationProvider_OnLocationUpdated;
_map.OnInitialized += () => _isInitialized = true;
}
void OnDestroy()
{
if (LocationProvider != null)
{
LocationProvider.OnLocationUpdated -= LocationProvider_OnLocationUpdated;
}
}
void LocationProvider_OnLocationUpdated(Location location)
{
if (_isInitialized && location.IsLocationUpdated)
{
_targetPosition = _map.GeoToWorldPosition(location.LatitudeLongitude);
}
}
void Update()
{
transform.localPosition = Vector3.Lerp(transform.localPosition, _targetPosition, Time.deltaTime * _positionFollowFactor);
}
}
}