Exemple #1
0
    private void LoadDataSet()
    {
        ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>();

        if (tracker != null)
        {
            Debug.Log("tracker here");
        }
        DataSet dset = tracker.CreateDataSet();

        if (dset.Load(DSPath + "/ds.xml", VuforiaUnity.StorageType.STORAGE_ABSOLUTE))
        {
            Debug.Log("Dataset loaded");
            if (tracker.ActivateDataSet(dset))
            {
                Debug.Log("DS activated");
                requestCheck = true;
                //			deb3.text = "DS activated";
            }
            else
            {
                Debug.Log("DS not activated");
            }
        }
        else
        {
            Debug.LogError("Failed to load dataset!");
            //		deb3.text = "Failed to load dataset!";
        }


        int counter = 0;

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

        foreach (TrackableBehaviour tb in tbs)
        {
            if (tb.name == "New Game Object")
            {
                // change generic name to include trackable name
                tb.gameObject.name = ++counter + ":DynamicImageTarget-" + tb.TrackableName;

                // add additional script components for trackable
                if (tb.TrackableName.Contains("vid_"))
                {
                    VideoTrackableEventHandler vteh = tb.gameObject.AddComponent <VideoTrackableEventHandler>();
                    vteh.mainCanv  = mainCanvas;
                    vteh.riglaCanv = riglaCanvas;
                    GameObject           vGO = Instantiate(videoGO, tb.gameObject.transform);
                    ImageTargetBehaviour itb = (ImageTargetBehaviour)tb;
                    if (tb.TrackableName.Contains("stre"))
                    {
                        if (itb.GetSize().x > itb.GetSize().y)
                        {
                            vGO.transform.localScale = new Vector3(itb.GetSize().x / 100, vGO.transform.localScale.y, itb.GetSize().y / 100);
                        }
                        else
                        {
                            vGO.transform.localScale = new Vector3(itb.GetSize().x / (itb.GetSize().y * 10), vGO.transform.localScale.y, itb.GetSize().y / (itb.GetSize().y * 10));
                        }
                    }
                    else
                    {
                        //  Debug.Log(itb.GetSize());
                        //LOAD videoscale
                        StartCoroutine(DownloadVideoScale(vGO, tb.TrackableName));
                        //END LOAD videoscale
                    }
                    vGO.GetComponentInChildren <VideoPlayer>().url = "http://glazar.pa.infobox.ru/ar/GlazAR/Video/" + tb.TrackableName + ".mp4";
                    VideoController v = vGO.GetComponent <VideoController>();


                    if (tb.TrackableName.Contains("play"))
                    {
                        v.playOnAwake = true;
                    }

                    HandsDeleter hd = tb.gameObject.AddComponent <HandsDeleter>();
                    hd.hands     = handsOn;
                    hd.mainCanv  = mainCanvas;
                    hd.riglaCanv = riglaCanvas;
                    StatGrabber sg = tb.gameObject.AddComponent <StatGrabber>();
                    sg.initstat   = initstat;
                    v.statGrabber = sg;
                    //  v.stat
                }
                else
                {
                    tb.gameObject.AddComponent <ABLoader>();
                    GameObject prl = Instantiate(preloader, tb.gameObject.transform);
                    //       prl.transform.localScale = prl.transform.lossyScale;
                    if (tb.TrackableName.Contains("deadpool"))
                    {
                        deadpoolInteractive a = tb.gameObject.AddComponent <deadpoolInteractive>();
                        a.tagbtns = "deadbuttons";
                    }
                    if (tb.TrackableName.Contains("robottank"))
                    {
                        deadpoolInteractive a = tb.gameObject.AddComponent <deadpoolInteractive>();
                        a.tagbtns = "deadrobotbtns";
                    }
                    if (tb.TrackableName.Contains("tank") || tb.TrackableName.Contains("deadpool"))
                    {
                        ((ImageTarget)tb.Trackable).StartExtendedTracking();
                    }

                    TrackableHandler tr = tb.gameObject.AddComponent <TrackableHandler>();
                    tr.hands     = handsOn;
                    tr.mainCanv  = mainCanvas;
                    tr.riglaCanv = riglaCanvas;
                    if (tb.TrackableName.Contains("pavelg"))
                    {
                        PavelMarker pm = tb.gameObject.AddComponent <PavelMarker>();
                        pm.gatchinaUI = gatchinaPanel;
                    }
                }
                tb.gameObject.AddComponent <TurnOffBehaviour>();
            }
        }
        handsOn.SetActive(true);

        isRunning = false;
    }