Пример #1
0
    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);
    }
Пример #2
0
    /// <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);
        }
    }
Пример #4
0
    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.");
                }
            }
        }
    }