Не отслеживается модель в unity vuforia

164
19 декабря 2019, 20:20

Облако работает, объект создает но при перемещении цели объект не перемещается вместе с ней.Кто знает в чем может быть проблема?

    using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using Vuforia;
public class SimpleCloudHandler : MonoBehaviour,IObjectRecoEventHandler
{
    public List<GameObject> models;
    public ImageTargetBehaviour ImageTargetTemplate;
    private CloudRecoBehaviour mCloudRecoBehaviour;
    private GameObject randObj;
    private bool mIsScanning = false;
    private string mTargetMetadata = "";
    private bool isFill = false;
    public void OnInitError(TargetFinder.InitState initError)
    {
        Debug.Log("Cloud Reco init error " + initError.ToString());
    }
    public void OnUpdateError(TargetFinder.UpdateState updateError)
    {
        Debug.Log("Cloud Reco update error " + updateError.ToString());
    }
    public void FillListModels()
    {
        try
        {
            UnityEngine.Object[] sublist = Resources.LoadAll("Prefabs", typeof(GameObject));
            foreach (GameObject sublistObjects in sublist)
            {
                GameObject tempObject = (GameObject)sublistObjects;
                models.Add(tempObject);
            }
            isFill = true;
        }
        catch (UnityException ex)
        {
            Debug.Log("Error: " + ex.ToString());
        }
    }
    public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
    {
        GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
        cube.transform.localScale = Vector3.Scale(new Vector3(25, 25, 25), new Vector3(25, 25, 25));
        cube.transform.parent = ImageTargetTemplate.transform;
        TargetFinder.CloudRecoSearchResult cloudRecoSearchResult = (TargetFinder.CloudRecoSearchResult)targetSearchResult;
        // do something with the target metadata
        mTargetMetadata = cloudRecoSearchResult.MetaData;
        // stop the target finder (i.e. stop scanning the cloud)
        mCloudRecoBehaviour.CloudRecoEnabled = false;
        if (ImageTargetTemplate)
        {
            ObjectTracker tracker = TrackerManager.Instance.GetTracker<ObjectTracker>();
            ImageTargetBehaviour imageTargetBehaviour = (ImageTargetBehaviour)tracker.GetTargetFinder<TargetFinder>().EnableTracking(targetSearchResult,cube);
            // enable the new result with the same ImageTargetBehaviour:
        }
    }
    //private void MainMenuUpButton(string label)
    //{
    //    var encoding = System.Text.Encoding.GetEncoding("UTF-8");
    //    string path = "Assets/Resources/Text_for_Targets.txt";
    //    StreamReader reader = new StreamReader(path, encoding, true);
    //    string tempText = reader.ReadToEnd();
    //    Debug.Log(tempText.IndexOf(label));
    //    reader.Dispose();
    //}
    //private GameObject GetOutModel(string metadata)
    //{
    //    if (metadata.IndexOf("text") > -1)
    //    {
    //        randObj = models[0];
    //        randObj.transform.SetParent(GameObject.Find("ImageTarget").transform, false);
    //        randObj.transform.SetPositionAndRotation(randObj.transform.position, Quaternion.EulerRotation(360, 360, 0));
    //        randObj = Instantiate(randObj);
    //    }
    //    else if (metadata.IndexOf("video") > -1)
    //    {
    //        randObj = models[2];
    //        randObj = Instantiate(randObj);
    //        randObj.transform.SetParent(ImageTargetTemplate.transform, false);
    //    }
    //    else { }
    //    randObj.transform.localPosition = ImageTargetTemplate.transform.position;
    //    randObj.transform.localRotation = Quaternion.Euler(90f, -90f, 90f);
    //    randObj.transform.localScale = new Vector3(1, 1, 1);
    //    return temp;
    //}
    void OnGUI()
    {
        // Display current 'scanning' status
        GUI.Box(new Rect(100, 100, 200, 50), mIsScanning ? "Scanning" : "Not scanning");
        // Display metadata of latest detected cloud-target
        GUI.Box(new Rect(100, 200, 200, 50), "Metadata: " + mTargetMetadata);
        // If not scanning, show button
        // so that user can restart cloud scanning
        if (!mIsScanning)
        {
            if (GUI.Button(new Rect(100, 300, 200, 50), "Restart Scanning"))
            {
                // Restart TargetFinder
                mCloudRecoBehaviour.CloudRecoEnabled = true;
            }
        }
    }
    public void OnStateChanged(bool scanning)
    {
        mIsScanning = scanning;
        if (scanning)
        {
            // clear all known trackables
            var tracker = TrackerManager.Instance.GetTracker<ObjectTracker>();
            tracker.GetTargetFinder<TargetFinder>().ClearTrackables(false);
            Destroy(randObj);
        }
    }
    // Start is called before the first frame update
    void Start()
    {
        //FillListModels();
        CloudRecoBehaviour cloudReco = GetComponent<CloudRecoBehaviour>();
        mCloudRecoBehaviour = GetComponent<CloudRecoBehaviour>();
        if (cloudReco)
        {
            mCloudRecoBehaviour.RegisterEventHandler(this);
        }
        mCloudRecoBehaviour = cloudReco;
    }
    // Update is called once per frame
    void Update()
    {
    }
    public void OnInitialized(TargetFinder targetFinder)
    {
        Debug.Log("Cloud Reco initialized " + targetFinder.ToString());
    }
}
READ ALSO
Как остановить WCF-сервис?

Как остановить WCF-сервис?

У меня есть WCF-сервис и консольное приложение (хост)Код хоста:

197
Как изменить курсор в области Drop zone

Как изменить курсор в области Drop zone

Есть label, который используется как drop zoneНа него можно перетаскивать файлы только с расширением xml

164
Как изменить курсор на курсор ожидания?

Как изменить курсор на курсор ожидания?

Есть приложение WinForms, на нем одна формаЯ пытаюсь изменить курсор на курсор ожидания во время выполнения метода:

152
Datatables передать выбранные поля в PHP

Datatables передать выбранные поля в PHP

У меня есть таблица, использующая jquery Datatables:

147