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