void Update()
    {
        if (Input.GetKey(KeyCode.Escape))
        {
            SceneStackManager.Instance.LoadPrevious();
        }

        StartCamera();

        if (!startTrackerDone)
        {
            TrackerManager.GetInstance().StartTracker(TrackerManager.TRACKER_TYPE_IMAGE);
            startTrackerDone = true;
        }

        TrackingState  state          = TrackerManager.GetInstance().UpdateTrackingState();
        TrackingResult trackingResult = state.GetTrackingResult();

        if (trackingResult.GetCount() == 0)
        {
            imageTrackable.OnTrackFail();
        }

        for (int i = 0; i < trackingResult.GetCount(); i++)
        {
            Trackable trackable = trackingResult.GetTrackable(i);
            imageTrackable.OnTrackSuccess(
                trackable.GetId(), trackable.GetName(), trackable.GetPose());
        }
    }
Esempio n. 2
0
        private void Update()
        {
            // reset trackable
            trackable.OnTrackFail();

            // get tracker state
            TrackingState state = _tracker.UpdateTrackingState();

            if (state == null)
            {
                // tracker is not running
                return;
            }

            backgroundBehaviour.UpdateCameraBackgroundImage(state);

            // get tracking data
            var result = state.GetTrackingResult();

            if (result.GetCount() <= 0)
            {
                // tracking marker has not been found, notify delegates that tracking has been stopped if needed
                if (isTracking)
                {
                    stoppedTracking.Invoke();
                }

                isTracking = false;
            }
            else
            {
                // marker has been found, notify delegates if needed
                if (!isTracking)
                {
                    startedTracking.Invoke();
                }

                isTracking = true;

                // pass tracking information onto trackable object for it to position itself
                var recognizedTrackable = result.GetTrackable(0);
                trackable.OnTrackSuccess(recognizedTrackable.GetId(), recognizedTrackable.GetName(), recognizedTrackable.GetPose());
            }
        }