コード例 #1
0
        void LoadDataSet()
        {
            ObjectTracker objectTracker = TrackerManager.Instance.GetTracker <ObjectTracker>();

            DataSet dataSet = objectTracker.CreateDataSet();

            if (dataSet.Load(dataSetName))
            {
                objectTracker.Stop();                  // stop tracker so that we can add new dataset

                if (!objectTracker.ActivateDataSet(dataSet))
                {
                    // Note: ImageTracker cannot have more than 100 total targets activated
                    Debug.Log("<color=yellow>Failed to Activate DataSet: " + dataSetName + "</color>");
                }

                if (!objectTracker.Start())
                {
                    Debug.Log("<color=yellow>Tracker Failed to Start.</color>");
                }

                int counter = 0;

                IEnumerable <TrackableBehaviour> tbs = TrackerManager.Instance.GetStateManager().GetTrackableBehaviours();
                foreach (TrackableBehaviour tb in tbs)
                {
                    if (tb.name == "STOP")
                    {
                        // change generic name to include trackable name
                        tb.gameObject.name = ++counter + ":DynamicImageTarget-" + tb.TrackableName;

                        // add additional script components for trackable
                        tb.gameObject.AddComponent <DefaultTrackableEventHandler>();
                        tb.gameObject.AddComponent <TurnOffBehaviour>();

                        if (augmentationObject != null)
                        {
                            // instantiate augmentation object and parent to trackable
                            GameObject augmentation = (GameObject)GameObject.Instantiate(augmentationObject);
                            augmentation.transform.parent        = tb.gameObject.transform;
                            augmentation.transform.localPosition = new Vector3(0f, 0f, 0f);
                            augmentation.transform.localRotation = Quaternion.identity;
                            augmentation.transform.localScale    = new Vector3(0.005f, 0.005f, 0.005f);
                            augmentation.gameObject.SetActive(true);
                        }
                        else
                        {
                            Debug.Log("<color=yellow>Warning: No augmentation object specified for: " + tb.TrackableName + "</color>");
                        }
                    }
                }
            }
            else
            {
                Debug.LogError("<color=yellow>Failed to load dataset: '" + dataSetName + "'</color>");
            }
        }
コード例 #2
0
 public void OnInitialized()
 {
     mObjectTracker = TrackerManager.Instance.GetTracker <ObjectTracker> ();
     if (mObjectTracker != null)
     {
         // Create a new dataset
         mBuiltDataSet = mObjectTracker.CreateDataSet();
         mObjectTracker.ActivateDataSet(mBuiltDataSet);
     }
 }
コード例 #3
0
    public void LoadDataSet(string _dataSetName, string _bundleUrl, Transform parent, Action <string> _callback)
    {
        Vuforia.ObjectTracker objectTracker = TrackerManager.Instance.GetTracker <Vuforia.ObjectTracker>();

        DataSet dataSet = objectTracker.CreateDataSet();

        if (dataSet.Load(_dataSetName))
        {
            objectTracker.Stop();  // stop tracker so that we can add new dataset

            if (!objectTracker.ActivateDataSet(dataSet))
            {
                // Note: ImageTracker cannot have more than 100 total targets activated
                Debug.Log("<color=yellow>Failed to Activate DataSet: " + _dataSetName + "</color>");
            }

            if (!objectTracker.Start())
            {
                Debug.Log("<color=yellow>Tracker Failed to Start.</color>");
            }

            int counter = 0;

            IEnumerable <TrackableBehaviour> tbs = TrackerManager.Instance.GetStateManager().GetTrackableBehaviours();

            foreach (TrackableBehaviour tb in tbs)
            {
                if (tb != null && tb.name == "New Game Object")
                {
                    var bundleUrl = String.Join("", new string[2] {
                        _bundleUrl, tb.TrackableName
                    });
                    tb.transform.SetParent(parent);
                    // change generic name to include trackable name
                    tb.gameObject.name = ++counter + ":DynamicImageTarget-" + tb.TrackableName;
                    Debug.Log("bU " + bundleUrl);

                    // add additional script components for trackable
                    var tracker = tb.gameObject.AddComponent <VuforiaTrackManager>();
                    tracker.Init(_dataSetName, bundleUrl, _callback);
                    tb.gameObject.AddComponent <TurnOffBehaviour>();
                }
            }
        }
        else
        {
            Debug.LogError("<color=yellow>Failed to load dataset: '" + _dataSetName + "'</color>");
        }
    }
コード例 #4
0
        public void LoadDatasets()
        {
            if (this.mDatasetsLoaded)
            {
                return;
            }
            if (!VuforiaRuntimeUtilities.IsVuforiaEnabled())
            {
                return;
            }
            ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>();

            string[] array = this.mDataSetsToLoad;
            int      i     = 0;

            while (i < array.Length)
            {
                string  text    = array[i];
                DataSet dataSet = null;
                if (DataSet.Exists(text))
                {
                    dataSet = tracker.CreateDataSet();
                    if (dataSet.Load(text))
                    {
                        goto IL_12A;
                    }
                    Debug.LogError("Failed to load data set " + text + ".");
                }
                else
                {
                    if (this.mExternalDatasetRoots.Count <= 0)
                    {
                        goto IL_12A;
                    }
                    Debug.Log("Data set " + text + " not present in application package, checking extended root locations");
                    using (List <string> .Enumerator enumerator = this.mExternalDatasetRoots.GetEnumerator())
                    {
                        while (enumerator.MoveNext())
                        {
                            string text2 = enumerator.Current + text + ".xml";
                            if (DataSet.Exists(text2, VuforiaUnity.StorageType.STORAGE_ABSOLUTE))
                            {
                                dataSet = tracker.CreateDataSet();
                                if (!dataSet.Load(text2, VuforiaUnity.StorageType.STORAGE_ABSOLUTE))
                                {
                                    Debug.LogError("Failed to load data set " + text2 + ".");
                                }
                                else
                                {
                                    Debug.Log("Loaded dataset at " + text2);
                                }
                            }
                        }
                    }
                    if (dataSet == null)
                    {
                        Debug.LogError("Unable to find " + text + " in extended root locations");
                        goto IL_12A;
                    }
                    goto IL_12A;
                }
IL_15C:
                i++;
                continue;
IL_12A:
                if (!this.mDataSetsToActivate.Contains(text))
                {
                    goto IL_15C;
                }
                if (dataSet != null)
                {
                    tracker.ActivateDataSet(dataSet);
                    goto IL_15C;
                }
                Debug.LogError("Dataset " + text + " could not be loaded and cannot be activated.");
                goto IL_15C;
            }
            this.mDatasetsLoaded = true;
        }