using System.Collections.Generic; using UnityEngine; namespace GISTech.GISTerrainLoader { public class WayPoints : MonoBehaviour { public bool RandomPoints; public int PointsNumber; public List RealWorldPoints = new List(); [HideInInspector] public List UnityWorldSpacePoints = new List(); private void Start() { } public void ConvertLatLonToSpacePosition(GISTerrainContainer Container, bool InstantiateGameObjects) { if (RandomPoints) { RealWorldPoints.Clear(); for (int i = 0; i <= PointsNumber; i++) { float num = Random.Range((float)Container.data.TLOriginal_Coor.x, (float)Container.data.DROriginal_Coor.x); float num2 = Random.Range((float)Container.data.TLOriginal_Coor.y, (float)Container.data.DROriginal_Coor.y); float num3 = Random.Range(Container.data.MinMaxElevation.y - 30f, Container.data.MinMaxElevation.y + 30f); RealWorldPoints.Add(new DVector3(num, num2, num3)); } } UnityWorldSpacePoints = new List(); base.transform.DestroyChildren(); foreach (DVector3 realWorldPoint in RealWorldPoints) { Vector3 vector = GISTerrainLoaderGeoConversion.RealWorldCoordinatesToUnityWorldSpace(Container, realWorldPoint.ToDVector2(), (float)realWorldPoint.z, SetElevationMode.RelativeToSeaLevel); UnityWorldSpacePoints.Add(vector); if (InstantiateGameObjects) { GameObject obj = GameObject.CreatePrimitive(PrimitiveType.Sphere); obj.name = "Point_" + RealWorldPoints.IndexOf(realWorldPoint); obj.transform.position = vector; obj.transform.parent = base.transform; } } } } }