public void OnInitialized()
 {
     mObjectTracker = TrackerManager.Instance.GetTracker <ObjectTracker> ();
     if (mObjectTracker != null)
     {
         // Create a new dataset
         mBuiltDataSet = mObjectTracker.CreateDataSet();
         mObjectTracker.ActivateDataSet(mBuiltDataSet);
     }
 }
        protected override void OnDestroy()
        {
            ((StateManagerImpl)TrackerManager.Instance.GetStateManager()).ClearTrackableBehaviours();
            ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>();

            if (tracker != null)
            {
                tracker.DestroyAllDataSets(false);
                tracker.Stop();
            }
            TextTracker tracker2 = TrackerManager.Instance.GetTracker <TextTracker>();

            if (tracker2 != null)
            {
                tracker2.Stop();
            }
            SmartTerrainTracker tracker3 = TrackerManager.Instance.GetTracker <SmartTerrainTracker>();

            if (tracker3 != null)
            {
                tracker3.Stop();
            }
            DeviceTracker tracker4 = TrackerManager.Instance.GetTracker <DeviceTracker>();

            if (tracker4 != null)
            {
                tracker4.Stop();
            }
            VuforiaManager.Instance.Deinit();
            if (tracker != null)
            {
                TrackerManager.Instance.DeinitTracker <ObjectTracker>();
            }
            if (tracker2 != null)
            {
                TrackerManager.Instance.DeinitTracker <TextTracker>();
            }
            if (tracker3 != null)
            {
                tracker3.SmartTerrainBuilder.Deinit();
                TrackerManager.Instance.DeinitTracker <SmartTerrainTracker>();
            }
            if (tracker4 != null)
            {
                TrackerManager.Instance.DeinitTracker <DeviceTracker>();
            }
            this.mHasStartedOnce = false;
            if (this.mOnVuforiaDeinitialized != null)
            {
                this.mOnVuforiaDeinitialized.InvokeWithExceptionHandling();
            }
        }
    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>");
        }
    }
Exemple #4
0
 internal void OnVuforiaStarted()
 {
     this.mOnInitializedCalled = true;
     this.mObjectTracker       = TrackerManager.Instance.GetTracker <ObjectTracker>();
     using (List <IUserDefinedTargetEventHandler> .Enumerator enumerator = this.mHandlers.GetEnumerator())
     {
         while (enumerator.MoveNext())
         {
             enumerator.Current.OnInitialized();
         }
     }
     if (this.StartScanningAutomatically)
     {
         this.StartScanning();
     }
 }
    public virtual void Destroy()
    {
        Debug.Log("Try destroy TRACKABLE");
        if (mTrackableBehaviour)
        {
            mTrackableBehaviour.UnregisterTrackableEventHandler(this);
        }

        Vuforia.ObjectTracker imageTracker = TrackerManager.Instance.GetTracker <Vuforia.ObjectTracker>();

        imageTracker.Stop();
        StateManager stateManager = TrackerManager.Instance.GetStateManager();

        stateManager.DestroyTrackableBehavioursForTrackable(mTrackableBehaviour.Trackable, true);
        imageTracker.Start();
    }
 protected override void OnApplicationPause(bool pause)
 {
     if (!VuforiaRuntimeUtilities.IsPlayMode())
     {
         if (pause)
         {
             if (!this.mPaused)
             {
                 if (this.mOnPause != null)
                 {
                     this.mOnPause.InvokeWithExceptionHandling(true);
                 }
                 ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>();
                 this.mObjectTrackerWasActiveBeforePause = (tracker != null && tracker.IsActive);
                 this.mWasEnabledBeforePause             = base.VuforiaBehaviour.enabled;
                 if (this.mWasEnabledBeforePause)
                 {
                     this.StopVuforia();
                 }
                 GL.Clear(false, true, new Color(0f, 0f, 0f, 1f));
                 UnityPlayer.Instance.OnPause();
             }
         }
         else if (this.mPaused)
         {
             UnityPlayer.Instance.OnResume();
             if (this.mWasEnabledBeforePause && this.StartVuforia(this.mObjectTrackerWasActiveBeforePause))
             {
                 IOSCamRecoveringHelper.SetHasJustResumed();
             }
             this.ResetBackgroundPlane(true);
             if (this.mOnPause != null)
             {
                 this.mOnPause.InvokeWithExceptionHandling(false);
             }
         }
     }
     this.mPaused = pause;
 }
        public bool DestroyVirtualButton(VirtualButton vb)
        {
            bool          result  = false;
            ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>();

            if (tracker != null)
            {
                bool flag = false;
                foreach (DataSet current in tracker.GetActiveDataSets())
                {
                    if (this.mDataSet == current)
                    {
                        flag = true;
                    }
                }
                if (flag)
                {
                    tracker.DeactivateDataSet(this.mDataSet);
                }
                if (this.UnregisterVirtualButtonInNative(vb))
                {
                    Debug.Log("Unregistering virtual button successfully");
                    result = true;
                    this.mVirtualButtons.Remove(vb.ID);
                }
                else
                {
                    Debug.LogError("Failed to unregister virtual button.");
                }
                if (flag)
                {
                    tracker.ActivateDataSet(this.mDataSet);
                }
            }
            return(result);
        }
        public override bool DeinitTracker <T>()
        {
            bool flag = true;

            if (VuforiaRuntimeUtilities.IsPlayMode() && (typeof(T) == typeof(DeviceTracker) || typeof(T) == typeof(RotationalDeviceTracker)))
            {
                flag = false;
            }
            if (flag && VuforiaWrapper.Instance.TrackerManagerDeinitTracker((int)TypeMapping.GetTypeID(typeof(T))) == 0)
            {
                Debug.LogError("Could not deinitialize the tracker.");
                return(false);
            }
            if (typeof(T) == typeof(ObjectTracker))
            {
                this.mObjectTracker = null;
            }
            else if (typeof(T) == typeof(TextTracker))
            {
                this.mTextTracker = null;
            }
            else if (typeof(T) == typeof(SmartTerrainTracker))
            {
                this.mSmartTerrainTracker = null;
            }
            else
            {
                if (typeof(T) != typeof(DeviceTracker) && typeof(T) != typeof(RotationalDeviceTracker))
                {
                    Debug.LogError("Could not deinitialize tracker. Unknown tracker type.");
                    return(false);
                }
                this.mDeviceTracker = null;
            }
            return(true);
        }
        private bool StopVuforia()
        {
            this.mHasStarted = false;
            Debug.Log("StopVuforia");
            ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>();

            if (tracker != null)
            {
                tracker.Stop();
            }
            CameraDevice.Instance.GetSelectedCameraDirection(out this.CameraDirection);
            this.CameraDeviceModeSetting = this.CameraDeviceMode;
            if (!CameraDevice.Instance.Stop())
            {
                return(false);
            }
            if (!CameraDevice.Instance.Deinit())
            {
                return(false);
            }
            VuforiaRenderer.Instance.ClearVideoBackgroundConfig();
            Device.Instance.DeleteRenderingPrimitives();
            return(true);
        }
Exemple #10
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;
        }
Exemple #11
0
 public void OnInitialized()
 {
     mObjectTracker = (ObjectTracker)TrackerManager.Instance.GetTracker <ObjectTracker>();
 }