private bool CorrectTrackableScales(TrackableBehaviour[] trackables) { bool flag = false; TrackableBehaviour[] behaviourArray = trackables; for (int i = 0; i < behaviourArray.Length; i++) { IEditorTrackableBehaviour behaviour = behaviourArray[i]; if (behaviour.CorrectScale()) { flag = true; } } return(flag); }
/// <summary> /// Destroys all the TrackableBehaviours for the given Trackable /// </summary> public void DestroyTrackableBehavioursForTrackable(Trackable trackable, bool destroyGameObjects = true) { TrackableBehaviour trackableBehaviour; if (mTrackableBehaviours.TryGetValue(trackable.ID, out trackableBehaviour)) { mTrackableBehaviours.Remove(trackable.ID); if (destroyGameObjects) { Object.Destroy(trackableBehaviour.gameObject); } else { IEditorTrackableBehaviour editorTrackableBehaviour = trackableBehaviour; editorTrackableBehaviour.UnregisterTrackable(); } } }
/// <summary> /// Destroys all the TrackableBehaviours for the given Trackable /// </summary> public override void DestroyTrackableBehavioursForTrackable(Trackable trackable, bool destroyGameObjects = true) { TrackableBehaviour trackableBehaviour; if (mTrackableBehaviours.TryGetValue(trackable.ID, out trackableBehaviour)) { if (destroyGameObjects) { mBehavioursMarkedForDeletion.Add(mTrackableBehaviours[trackable.ID]); Object.Destroy(trackableBehaviour.gameObject); } else { IEditorTrackableBehaviour editorTrackableBehaviour = trackableBehaviour; editorTrackableBehaviour.UnregisterTrackable(); } mTrackableBehaviours.Remove(trackable.ID); mAutomaticallyCreatedBehaviours.Remove(trackable.ID); } }
public override void DestroyTrackableBehavioursForTrackable(Trackable trackable, [Optional, DefaultParameterValue(true)] bool destroyGameObjects) { TrackableBehaviour behaviour; if (this.mTrackableBehaviours.TryGetValue(trackable.ID, out behaviour)) { if (destroyGameObjects) { this.mBehavioursMarkedForDeletion.Add(this.mTrackableBehaviours[trackable.ID]); UnityEngine.Object.Destroy(behaviour.gameObject); } else { IEditorTrackableBehaviour behaviour2 = behaviour; behaviour2.UnregisterTrackable(); } this.mTrackableBehaviours.Remove(trackable.ID); this.mAutomaticallyCreatedBehaviours.Remove(trackable.ID); } }
// Check for duplicate Trackables in the scene. private void CheckForDuplicates(IEditorTrackableBehaviour[] trackables) { //Before we serialize we check for duplicates and provide a warning. for (int i = 0; i < trackables.Length; ++i) { string tNameA = trackables[i].TrackableName; // Ignore default names... if (tNameA == QCARUtilities.GlobalVars.DEFAULT_TRACKABLE_NAME) continue; for (int j = i + 1; j < trackables.Length; ++j) { string tNameB = trackables[j].TrackableName; // Ignore default names... if (tNameB == QCARUtilities.GlobalVars.DEFAULT_TRACKABLE_NAME) continue; // We need to handle data set Trackables differently than markers. if (((trackables[i] is DataSetTrackableBehaviour) && (trackables[j] is DataSetTrackableBehaviour))) { IEditorDataSetTrackableBehaviour castedTrackableA = (DataSetTrackableBehaviour)trackables[i]; IEditorDataSetTrackableBehaviour castedTrackableB = (DataSetTrackableBehaviour)trackables[j]; string tDataA = castedTrackableA.DataSetName; string tDataB = castedTrackableB.DataSetName; // Ignore Data Set Trackables that don't belong to the same data set. if (tDataA.IndexOf(tDataB) != 0) { continue; } } else if (!((trackables[i] is MarkerBehaviour) && (trackables[j] is MarkerBehaviour))) { // Ignore trackables that are of different type. // Note: Multi Targets and Image Targets still need to have // different names. continue; } if (tNameA == tNameB) { Debug.LogWarning("Duplicate Trackables detected: \"" + tNameA + "\". Only one of the Trackables and its respective Augmentation " + "will be selected for use at runtime - " + "that selection is indeterminate here."); } } } }