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