コード例 #1
0
        private void Start()
        {
            points = new Vector3[Path.Locations.Length];

            for (var i = 0; i < points.Length; i++)
            {
                points[i] = Path.Locations[i].ToVector3();
            }

            spline = Misc.BuildSpline(Path.SplineType, points, SplineSampleSize, Path.Alpha);

            var sample = spline.SamplePoints(ObjectCount);


            for (var i = 0; i < sample.Length; i++)
            {
                var location = new Location()
                {
                    Latitude     = sample[i].z,
                    Longitude    = sample[i].x,
                    Altitude     = sample[i].y,
                    AltitudeMode = AltitudeMode
                };
                var instance = PlaceAtLocation.CreatePlacedInstance(Prefab, location, PlacementSettings, DebugMode);

                instance.name = $"{gameObject.name} - {i}";
            }
        }
コード例 #2
0
        public void AddLocation(Location location)
        {
            var instance = PlaceAtLocation.CreatePlacedInstance(Prefab, location, PlacementOptions, DebugMode);

            instance.name = $"{gameObject.name} - {locations.Count}";

            locations.Add(location);
            instances.Add(instance);
        }
コード例 #3
0
        void PlaceEntryAtLocation(Entry entry)
        {
            var prefab = PrefabDatabase.GetEntryById(entry.MeshId);

            if (prefab == null)
            {
                Debug.LogWarning($"Invalid prefab '{entry.MeshId}'");
                return;
            }

            var location = entry.Location;
            var options  = new PlaceAtLocation.PlaceAtOptions {
            };

            entry.Instance = PlaceAtLocation.CreatePlacedInstance(prefab, location, options, false);
            entry.Instance.transform.localEulerAngles = new Vector3(0, entry.Rotation, 0);
        }
コード例 #4
0
        void BuildGameObjects()
        {
            foreach (var entry in _dataEntries)
            {
                var Prefab = PrefabDatabase.GetEntryById(entry.meshId);

                if (!Prefab)
                {
                    Debug.LogWarning($"[ARLocation#WebMapLoader]: Prefab {entry.meshId} not found.");
                    continue;
                }

                var PlacementOptions = new PlaceAtLocation.PlaceAtOptions()
                {
                    MovementSmoothing          = entry.movementSmoothing,
                    MaxNumberOfLocationUpdates = entry.maxNumberOfLocationUpdates,
                    UseMovingAverage           = entry.useMovingAverage,
                    HideObjectUntilItIsPlaced  = entry.hideObjectUtilItIsPlaced
                };

                var location = new Location()
                {
                    Latitude     = entry.lat,
                    Longitude    = entry.lng,
                    Altitude     = entry.altitude,
                    AltitudeMode = entry.getAltitudeMode(),
                    Label        = entry.name
                };

                var instance = PlaceAtLocation.CreatePlacedInstance(Prefab,
                                                                    location,
                                                                    PlacementOptions,
                                                                    DebugMode);

                _stages.Add(instance);
            }
        }