/// <summary> /// Cannot make the assumption that a privilege is still granted after /// returning from pause. Return the application to the state where it /// requests privileges needed. /// </summary> void OnApplicationPause(bool pause) { if (pause) { MLImageTrackerStarterKit.Stop(); } #if PLATFORM_LUMIN else if (MLDevice.IsReady() && _imageTarget != null) { MLImageTrackerStarterKit.Start(); } #endif }
/// <summary> /// Starts the image tracker and adds the image target to the tracking system. /// </summary> void Start() { #if PLATFORM_LUMIN MLResult result = MLImageTrackerStarterKit.Start(); if (result.IsOk) { AddTarget(); } else { Debug.LogErrorFormat("MLImageTrackerBehavior failed on MLImageTrackerStarterKit.Start. Reason: {0}", result); } #endif }
/// <summary> /// Adds a new image target to be tracked. /// </summary> private void AddTarget() { #if PLATFORM_LUMIN _imageTarget = MLImageTrackerStarterKit.AddTarget(gameObject.GetInstanceID().ToString(), image, longerDimensionInSceneUnits, HandleAllTargetStatuses, isStationary); if (_imageTarget == null) { Debug.LogErrorFormat("MLImageTrackerBehavior.AddTarget failed to add target {0} to the image tracker.", gameObject.name); return; } _imageTarget.OnFound += (MLImageTracker.Target target, MLImageTracker.Target.Result result) => { OnTargetFound?.Invoke(target, result); }; _imageTarget.OnLost += (MLImageTracker.Target target, MLImageTracker.Target.Result result) => { OnTargetLost?.Invoke(target, result); }; _imageTarget.OnUpdated += (MLImageTracker.Target target, MLImageTracker.Target.Result result) => { OnTargetUpdated?.Invoke(target, result); }; #endif }
/// <summary> /// Removes the image target from the tracking system and then stops the starter kit. /// </summary> void OnDestroy() { MLImageTrackerStarterKit.RemoveTarget(gameObject.GetInstanceID().ToString()); MLImageTrackerStarterKit.Stop(); }