Example #1
0
        public override void AddWorldObject(LocationARWorldObject worldObject, bool attach)
        {
            var state = new TrackedWorldObjectState();

            var parent = new GameObject("AR Object");
            state.WorldObjectParent = parent;
            worldObject.GameObject.transform.SetParent(state.WorldObjectParent.transform);

            worldObject.GameObject.transform.localPosition = Vector2.zero;
            worldObject.GameObject.transform.localScale = Vector3.one;
            worldObject.GameObject.transform.rotation = Quaternion.identity;

            m_objStates.Add(worldObject, state);

            // Leave the object inactive until we parent it to the correct anchor.
            state.WorldObjectParent.SetActive(false);

            base.AddWorldObject(worldObject, false);
        }
Example #2
0
 protected void AdjustTrackedObject(ARWorldObject obj, TrackedWorldObjectState state)
 {
     ApplyOptions(state.WorldObjectParent.transform, WorldCamera, obj.Options);
 }
Example #3
0
        protected void AdjustObject(LocationARWorldObject worldObject, bool isCameraTracking, TrackedWorldObjectState state)
        {
            state.WorldObjectParent.SetActive(true);

            bool isTracking = UsingTracking && isCameraTracking;

            if (!isTracking)
            {
                // Use the default rendering. We do this if ARKit stopped tracking.
                if (state.TrackingState != ObjectTrackingState.NotTracking)
                {
                    state.TrackingState = ObjectTrackingState.NotTracking;

                    state.WorldObjectParent.SetActive(false);

                    worldObject.GameObject.transform.SetParent(DefaultAnchor.transform);

                    worldObject.GameObject.transform.localRotation = Quaternion.identity;
                    worldObject.GameObject.transform.localScale = Vector3.one;
                }

                SetPosition(worldObject);
            }
            else
            {
                if (state.TrackingState != ObjectTrackingState.Tracking)
                {
                    state.WorldObjectParent.transform.SetParent(TrackingAnchor.transform);

                    worldObject.GameObject.transform.SetParent(state.WorldObjectParent.transform);

                    worldObject.GameObject.transform.localPosition = Vector3.zero;
                    worldObject.GameObject.transform.localScale = Vector3.one;
                    worldObject.GameObject.transform.localRotation = Quaternion.identity;

                    SetObjectPosition(worldObject, state, m_gpsAnchorCoords);

                    state.TrackingState = ObjectTrackingState.Tracking;
                }

                AdjustTrackedObject(worldObject, state);
            }
        }
Example #4
0
 protected void SetObjectPosition(LocationARWorldObject worldObject, TrackedWorldObjectState state, Coordinates coords)
 {
     SetObjectPosition(worldObject, state.WorldObjectParent, coords);
 }