Не двигается gameobject

Раздел, посвящённый Дополненной Реальности и Виртуальной Реальности

Не двигается gameobject

Сообщение WhiteChemist 26 мар 2019, 11:50

При перемещении цели gameobject не двигается. Он просто спавнится и все. Вот код:
Синтаксис:
Используется csharp
    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)
        {
        var cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
            cube.transform.SetParent(ImageTargetTemplate.transform, false);
       
            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:
            }
        mCloudRecoBehaviour.CloudRecoEnabled = true;
        }
    //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 { }

        return randObj;

    }

    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 (mCloudRecoBehaviour)
            {
                mCloudRecoBehaviour.RegisterEventHandler(this);
            }


        }

        // Update is called once per frame
        void Update()
        {

        }

        public void OnInitialized(TargetFinder targetFinder)
        {
            Debug.Log("Cloud Reco initialized " + targetFinder.ToString());
        }
    }
 

Выводит ошибку что в строке
Синтаксис:
Используется csharp
   ImageTargetBehaviour imageTargetBehaviour = (ImageTargetBehaviour)tracker.GetTargetFinder<TargetFinder>().EnableTracking(targetSearchResult,cube);
и в строке
Синтаксис:
Используется csharp
                tracker.GetTargetFinder<TargetFinder>().ClearTrackables(false);
ObjectReference not set и в тех же строках unsupported targetfinder type provided
WhiteChemist
UNец
 
Сообщения: 37
Зарегистрирован: 12 фев 2019, 21:31

Вернуться в AR / VR

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2