Облако работает, объект создает но при перемещении цели объект не перемещается вместе с ней.Кто знает в чем может быть проблема?
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());
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть label, который используется как drop zoneНа него можно перетаскивать файлы только с расширением xml
Есть приложение WinForms, на нем одна формаЯ пытаюсь изменить курсор на курсор ожидания во время выполнения метода: