Example #1
0
            void OnChanged(ARTrackedImagesChangedEventArgs eventArgs)
            {
                foreach (var newImage in eventArgs.added)
                {
                    // Handle added event
                }

                foreach (var updatedImage in eventArgs.updated)
                {
                    // Handle updated event
                }

                foreach (var removedImage in eventArgs.removed)
                {
                    // Handle removed event
                }
            }
        void OnChanged(ARTrackedImagesChangedEventArgs eventArgs)
        {
            // iterates through all the newly detected images
            // but not through the ones whos tracking was lost and are being detected again
            foreach (var newImage in eventArgs.added)
            {
                // check if the detected images is our targeted watchImage
                if (newImage.referenceImage.name == referenceImageName)
                {
                    RegisterNewImage(newImage);
                }
                else
                {
                    showDebugLinesScript.ChangeDebugText("OnChanged()/newImages - Newly Detected Image is not the targeted watchImage");
                }
            }

            // updates all already tracked images
            foreach (var updatedImage in eventArgs.updated)
            {
                // checks if the image is the targeted watchImage
                if (currentTrackableId.Equals(updatedImage.trackableId))
                {
                    switch (updatedImage.trackingState)
                    {
                    case TrackingState.Tracking:
                    {
                        if (currentWatchObj == null)
                        {
                            InstantiateNewWatchFace(updatedImage.transform);
                            showDebugLinesScript.ChangeDebugText("OnChanged()/updatedImages - instantiating watchFace in updated");
                        }
                        else
                        {
                            UpdateWatchPosition(updatedImage);
                        }
                        break;
                    }

                    case TrackingState.Limited:
                    {
                        DestroyLostWatchFace();
                        showDebugLinesScript.ChangeDebugText("OnChanged()/updatedImages - TrackingState is: Limited");
                        break;
                    }

                    case TrackingState.None:
                    {
                        DestroyLostWatchFace();
                        showDebugLinesScript.ChangeDebugText("OnChanged()/updatedImages - TrackingState is: None");
                        break;
                    }

                    default:
                    {
                        showDebugLinesScript.ChangeDebugText("OnChanged()/updatedImages - SwitchCase-Error: default was hit");
                        break;
                    }
                    }
                }
            }

            // iterates though all lost tracking images
            foreach (var removedImage in eventArgs.removed)
            {
                showDebugLinesScript.ChangeDebugText("OnChanged()/removedImage - list was called");
            }
        }