You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mapbox-sdk/Unity/Location/AbstractEditorLocationProvi...

67 lines
1.2 KiB

6 months ago
namespace Mapbox.Unity.Location
{
using System.Collections;
using UnityEngine;
public abstract class AbstractEditorLocationProvider : AbstractLocationProvider
{
[SerializeField]
protected int _accuracy;
[SerializeField]
bool _autoFireEvent;
[SerializeField]
float _updateInterval;
[SerializeField]
bool _sendEvent;
WaitForSeconds _wait = new WaitForSeconds(0);
#if UNITY_EDITOR
protected virtual void Awake()
{
_wait = new WaitForSeconds(_updateInterval);
StartCoroutine(QueryLocation());
}
#endif
IEnumerator QueryLocation()
{
// HACK: Let others register before we send our first event.
// Often this happens in Start.
yield return new WaitForSeconds(.1f);
while (true)
{
SetLocation();
if (_autoFireEvent)
{
SendLocation(_currentLocation);
}
yield return _wait;
}
}
// Added to support TouchCamera script.
public void SendLocationEvent()
{
SetLocation();
SendLocation(_currentLocation);
}
protected virtual void OnValidate()
{
if (_sendEvent)
{
_sendEvent = false;
SendLocation(_currentLocation);
}
}
protected abstract void SetLocation();
}
}