Files
badeend-go/Assets/CollectableDuckData.cs

45 lines
1.3 KiB
C#

using System;
using System.Globalization;
using Mapbox.Unity.Utilities;
using Mapbox.Utils;
using UnityEngine;
using UnityEngine.Serialization;
[CreateAssetMenu(fileName = "duck", menuName = "Duck/Collectable", order = 0)]
public class CollectableDuckData: ScriptableObject
{
[SerializeField]
[Geocode]
private string _latitudeLongitude;
[SerializeField] private GameObject _modelPrefab;
[FormerlySerializedAs("_sticker")] [SerializeField] private DuckStickerData stickerData;
public Vector2d LatitudeLongitude
{
get
{
if (string.IsNullOrEmpty(_latitudeLongitude))
{
return Vector2d.zero;
}
var splitIndex = _latitudeLongitude.IndexOf(",", StringComparison.Ordinal);
if (splitIndex < 0)
{
throw new Exception("Invalid Duck coordinate: " + _latitudeLongitude);
}
var lat = double.Parse(_latitudeLongitude.Substring(0, splitIndex), NumberStyles.Float, CultureInfo.InvariantCulture);
var lon = double.Parse(_latitudeLongitude.Substring(splitIndex + 1), NumberStyles.Float, CultureInfo.InvariantCulture);
return new Vector2d(lat, lon);
}
}
public GameObject ModelPrefab => _modelPrefab;
public DuckStickerData StickerData => stickerData;
}