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()); } }
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()); } }