public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { DestroyImmediate(Text); path = Application.streamingAssetsPath + "/json1.json"; jsonString = File.ReadAllText(path); Room Raum1 = JsonUtility.FromJson <Room>(jsonString); Text = new GameObject(); Text.AddComponent <TextMesh>(); Text.GetComponent <TextMesh>().text = "Room : " + Raum1.Raum + "\n" + "Name : " + Raum1.Name + "\n" + "E-Mail : " + Raum1.EMail + "\n" + "Tel. Nr : " + Raum1.Tel + "\n" + "Sprechzeiten :" + Raum1.Hours; Text.GetComponent <TextMesh>().richText = true; Text.GetComponent <TextMesh>().characterSize = 10; Text.transform.rotation = Quaternion.Euler(90, 0, 0); mTargetMetadata = targetSearchResult.MetaData; // StartCoroutine(GetTextFromWWW(mTargetMetadata)); mCloudRecoBehaviour.CloudRecoEnabled = false; if (ImageTargetTemplate) { //mCloudRecoBehaviour.CloudRecoEnabled = true; /*Disables the Restart Scanning Button */ mImageTracker = TrackerManager.Instance.GetTracker <ObjectTracker>(); ImageTargetBehaviour imageTargetBehaviour = (ImageTargetBehaviour)mImageTracker.TargetFinder.EnableTracking(targetSearchResult, ImageTargetTemplate.gameObject); } }
/// <summary> /// Handles new search results /// </summary> /// <param name="targetSearchResult"></param> public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { // This code demonstrates how to reuse an ImageTargetBehaviour for new search results and modifying it according to the metadata // Depending on your application, it can make more sense to duplicate the ImageTargetBehaviour using Instantiate(), // or to create a new ImageTargetBehaviour for each new result // Vuforia will return a new object with the right script automatically if you use // TargetFinder.EnableTracking(TargetSearchResult result, string gameObjectName) //Check if the metadata isn't null if (targetSearchResult.MetaData == null) { return; } // First clear all trackables mObjectTracker.TargetFinder.ClearTrackables(false); // enable the new result with the same ImageTargetBehaviour: ImageTargetBehaviour imageTargetBehaviour = mObjectTracker.TargetFinder.EnableTracking(targetSearchResult, mParentOfImageTargetTemplate) as ImageTargetBehaviour; //if extended tracking was enabled from the menu, we need to start the extendedtracking on the newly found trackble. if (CloudRecognitionUIEventHandler.ExtendedTrackingIsEnabled) { imageTargetBehaviour.ImageTarget.StartExtendedTracking(); } }
public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { TargetFinder.CloudRecoSearchResult cloudRecoSearchResult = (TargetFinder.CloudRecoSearchResult)targetSearchResult; mIsScanning = false; mTargetMetadata = cloudRecoSearchResult.MetaData; Debug.Log(mTargetMetadata); //GameObject newImageTarget = Instantiate(targetBehaviour.gameObject) as GameObject; //MainVideoPlayer = newImageTarget.transform.GetChild(0).gameObject; //metadata = newImageTarget.transform.GetChild(1).gameObject; //Debug.Log(newImageTarget.transform.GetChild(1).transform.GetChild(0)); //GameObject augmentation = null; //if (augmentation != null) //{ // augmentation.transform.SetParent(newImageTarget.transform); // Debug.Log("Augmentation is " + augmentation.name); //} if (targetBehaviour) { ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>(); ImageTargetBehaviour imageTargetBehaviour = (ImageTargetBehaviour)tracker.GetTargetFinder <ImageTargetFinder>().EnableTracking(targetSearchResult, targetBehaviour.gameObject); } //MainVideoPlayer.GetComponent<VideoPlayer>().url = mTargetMetadata.Trim(); //appManager.LoadAR(mTargetMetadata.Trim()); stringParser.SplitString(mTargetMetadata.Trim()); //metadata.GetComponentInChildren<Text>().text = mTargetMetadata; if (!mIsScanning) { mCloudRecoBehaviour.CloudRecoEnabled = true; } }
/// Handles new search results /// <param name="targetSearchResult"></param> public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { // duplicate the referenced image target GameObject newImageTarget = Instantiate(ImageTargetTemplate.gameObject) as GameObject; GameObject augmentation = null; string model_name = targetSearchResult.MetaData; if (augmentation != null) { augmentation.transform.parent = newImageTarget.transform; } // enable the new result with the same ImageTargetBehaviour: ImageTargetAbstractBehaviour imageTargetBehaviour = mImageTracker.TargetFinder.EnableTracking(targetSearchResult, newImageTarget); Debug.Log("Metadata value is " + model_name); mTargetMetadata = model_name; if (!mIsScanning) { // stop the target finder mCloudRecoBehaviour.CloudRecoEnabled = true; } }
public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { TargetFinder.CloudRecoSearchResult cloudRecoSearchResult = (TargetFinder.CloudRecoSearchResult)targetSearchResult; mTargetMetadata = cloudRecoSearchResult.MetaData; GameObject newImageTarget = Instantiate(ImageTargetTemplate.gameObject) as GameObject; GameObject MainImage = newImageTarget.transform.GetChild(0).gameObject; GameObject augmentation = null; if (augmentation != null) { augmentation.transform.SetParent(newImageTarget.transform); } if (ImageTargetTemplate) { ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>(); ImageTargetBehaviour imageTargetBehaviour = (ImageTargetBehaviour)tracker.TargetFinder.EnableTracking(targetSearchResult, newImageTarget); } string IMG = cloudRecoSearchResult.MetaData; if (!mIsScanning) { mCloudRecoBehaviour.CloudRecoEnabled = true; } }
// Here we handle a cloud target recognition event public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { if (targetSearchResult.MetaData == null) { return; } mTargetMetadata = targetSearchResult.MetaData; if (mTargetMetadata.Contains("Graffiti")) { Reconstructor.setLineManager(JsonUtility.FromJson <LineManager>(mTargetMetadata)); } else if (mTargetMetadata.Contains("Text")) { Reconstructor.setTextManager(JsonUtility.FromJson <TextManager>(mTargetMetadata)); } ImageTargetBehaviour imageTargetBehaviour = (ImageTargetBehaviour)tracker.TargetFinder.EnableTracking( targetSearchResult, ImageTargetTemplate.gameObject); if (ImageTargetTemplate != null) { mCloudRecoBehaviour.CloudRecoEnabled = false; } }
/// <summary> /// Handles new search results /// </summary> /// <param name="targetSearchResult"></param> public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { // This code demonstrates how to reuse an ImageTargetBehaviour for new search results and modifying it according to the metadata // Depending on your application, it can make more sense to duplicate the ImageTargetBehaviour using Instantiate(), // or to create a new ImageTargetBehaviour for each new result // Vuforia will return a new object with the right script automatically if you use // TargetFinder.EnableTracking(TargetSearchResult result, string gameObjectName) //Check if the metadata isn't null if (targetSearchResult.MetaData == null) { return; } // enable the new result with the same ImageTargetBehaviour: ImageTargetBehaviour imageTargetBehaviour = mImageTracker.TargetFinder.EnableTracking(targetSearchResult, mParentOfImageTargetTemplate) as ImageTargetBehaviour; if (imageTargetBehaviour != null) { // stop the target finder mCloudRecoBehaviour.CloudRecoEnabled = false; // Calls the TargetCreated Method of the SceneManager object to start loading // the BookData from the JSON mContentManager.TargetCreated(targetSearchResult.MetaData); mContentManager.AnimationsManager.SetInitialAnimationFlags(); } }
//Se ejecuta cuando detecta el target y descarga la informacion de la nube public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { //Mensaje con el nombre del target y el contenido de la Metadata Debug.Log("Nombre del Target: " + targetSearchResult.TargetName + "\nMetadata: " + targetSearchResult.MetaData); //Pasa el nombre del target y el contenido de la Metadata a los textos de la interfaz scriptUIManager.txtTargetName.text = targetSearchResult.TargetName; scriptUIManager.txtMetadata.text = targetSearchResult.MetaData; GameObject newImageTarget = Instantiate(ImageTargetTemplate.gameObject) as GameObject; GameObject augmentation = null; string targetName = targetSearchResult.TargetName; //Almacena el nombre del target if (augmentation != null) { augmentation.transform.parent = newImageTarget.transform; } ImageTargetBehaviour newImageTargetBehaviour = mImageTracker.TargetFinder.EnableTracking(targetSearchResult, newImageTarget); //Recorre el array de objetos, y desactiva todos excepto el del target que se encontro for (int i = 0; i < newImageTargetBehaviour.gameObject.transform.childCount; i++) { if (newImageTargetBehaviour.gameObject.transform.GetChild(i).gameObject.name != targetName) { newImageTargetBehaviour.gameObject.transform.GetChild(i).gameObject.SetActive(false); } } if (!mIsScanning) { mCloudRecoBehaviour.CloudRecoEnabled = true; } }
public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { // do something with the target metadata mTargetMetadata = targetSearchResult.MetaData; if (!NetworkInfoManager.Instance.DeviceIdExists(mTargetMetadata)) { NetworkInfoManager.Instance.AddNetworkDevice(mTargetMetadata); currentId = mTargetMetadata; GameObject newImageTarget = Instantiate(imageTargetTemplate) as GameObject; newImageTarget.name = "imageTarget_" + currentId; newImageTarget.SetActive(true); GameObject newGraph = Instantiate(graphTemplate, newImageTarget.transform.position + (newImageTarget.transform.up * .3f), newImageTarget.transform.rotation, newImageTarget.transform); newGraph.GetComponent <Graph>().Init(currentId); newGraph.transform.localScale = newImageTarget.transform.localScale; currentImageTarget = newImageTarget; NetworkInfoManager.Instance.SetCurrentGraph(newGraph.GetComponent <Graph>()); var tracker = TrackerManager.Instance.GetTracker <ObjectTracker>(); ImageTargetBehaviour imageTargetBehaviour = tracker.TargetFinder.EnableTracking(targetSearchResult, newImageTarget); if (imageTargetBehaviour != null) { mCloudRecoBehaviour.CloudRecoEnabled = false; } } }
// Here we handle a cloud target recognition event public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { 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; // Build augmentation based on target if (ImageTargetTemplate) { // enable the new result with the same ImageTargetBehaviour: ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>(); tracker.GetTargetFinder <ImageTargetFinder>().EnableTracking(targetSearchResult, ImageTargetTemplate.gameObject); } movie = JsonUtility.FromJson <Movie>(mTargetMetadata); mTargetMetadata = movie.name; URL = movie.url; SetActivityInNativePlugin(); //ShowTargetInfo(mTargetMetadata); MovieTTS(mTargetMetadata); string date = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"); AddHistoryEntry(date, movie.name); bool fav = CheckIfFav(date, movie.name); favoritesSwap.SetFavorite(fav); }
/// <summary> /// Handles new search results /// </summary> /// <param name="targetSearchResult"></param> public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { //Debug.Log("<color=blue>OnNewSearchResult(): </color>" + targetSearchResult.TargetName); TargetFinder.CloudRecoSearchResult cloudRecoResult = (TargetFinder.CloudRecoSearchResult)targetSearchResult; // This code demonstrates how to reuse an ImageTargetBehaviour for new search results // and modifying it according to the metadata. Depending on your application, it can // make more sense to duplicate the ImageTargetBehaviour using Instantiate() or to // create a new ImageTargetBehaviour for each new result. Vuforia will return a new // object with the right script automatically if you use: // TargetFinder.EnableTracking(TargetSearchResult result, string gameObjectName) // Changing CloudRecoBehaviour.CloudRecoEnabled to false will call TargetFinder.Stop() // and also call all registered ICloudRecoEventHandler.OnStateChanged() with false. m_CloudRecoBehaviour.CloudRecoEnabled = false; // Clear any existing trackables m_TargetFinder.ClearTrackables(false); ObjectTrack.ObjectName = targetSearchResult.TargetName; //afterScan.Begin();*/ // Enable the new result with the same ImageTargetBehaviour: m_TargetFinder.EnableTracking(cloudRecoResult, m_ImageTargetBehaviour.gameObject); // Pass the TargetSearchResult to the Trackable Event Handler for processing m_ImageTargetBehaviour.gameObject.SendMessage("TargetCreated", cloudRecoResult, SendMessageOptions.DontRequireReceiver); }
/// <summary> /// Handles new search results /// </summary> /// <param name="targetSearchResult"></param> public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { Debug.Log("<color=blue>OnNewSearchResult(): </color>" + targetSearchResult.TargetName); // This code demonstrates how to reuse an ImageTargetBehaviour for new search results // and modifying it according to the metadata. Depending on your application, it can // make more sense to duplicate the ImageTargetBehaviour using Instantiate() or to // create a new ImageTargetBehaviour for each new result. Vuforia will return a new // object with the right script automatically if you use: // TargetFinder.EnableTracking(TargetSearchResult result, string gameObjectName) m_CloudRecoContentManager.HandleTargetFinderResult(targetSearchResult); //Check if the metadata isn't null if (targetSearchResult.MetaData == null) { Debug.Log("Target metadata not available."); } else { Debug.Log("MetaData: " + targetSearchResult.MetaData); Debug.Log("TargetName: " + targetSearchResult.TargetName); Debug.Log("Pointer: " + targetSearchResult.TargetSearchResultPtr); Debug.Log("TargetSize: " + targetSearchResult.TargetSize); Debug.Log("TrackingRating: " + targetSearchResult.TrackingRating); Debug.Log("UniqueTargetId: " + targetSearchResult.UniqueTargetId); } // First clear all trackables m_TargetFinder.ClearTrackables(false); // enable the new result with the same ImageTargetBehaviour: m_TargetFinder.EnableTracking(targetSearchResult, m_ImageTargetBehaviour.gameObject); }
// Here we handle a cloud target recognition event public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { Debug.Log("New Search Result Found!"); mTargetName = targetSearchResult.TargetName; Debug.Log("Target: " + mTargetName); TargetFinder.CloudRecoSearchResult cloudRecoSearchResult = (TargetFinder.CloudRecoSearchResult)targetSearchResult; // do something with the target metadata mTargetMetadata = cloudRecoSearchResult.MetaData; if (mTargetMetadata != null) { Debug.Log("Cloud Search Metadata: " + mTargetMetadata); } else { Debug.Log("No Cloud Search Metadata"); } // stop the target finder (i.e. stop scanning the cloud) mCloudRecoBehaviour.CloudRecoEnabled = false; // Build augmentation based on target if (ImageTargetTemplate) { // enable the new result with the same ImageTargetBehaviour: ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>(); tracker.GetTargetFinder <ImageTargetFinder>().EnableTracking(targetSearchResult, ImageTargetTemplate.gameObject); } uIHandler.updateTarget(mTargetName); }
/// <summary> /// Handles new search results /// </summary> /// <param name="targetSearchResult"></param> public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { // This code demonstrates how to reuse an ImageTargetBehaviour for new search results and modifying it according to the metadata // Depending on your application, it can make more sense to duplicate the ImageTargetBehaviour using Instantiate(), // or to create a new ImageTargetBehaviour for each new result // Vuforia will return a new object with the right script automatically if you use // TargetFinder.EnableTracking(TargetSearchResult result, string gameObjectName) string model_name = targetSearchResult.MetaData; //Check if the metadata isn't null if (targetSearchResult.MetaData == null) { return; } Debug.Log("Metadata value is " + model_name); BundleURL = model_name; StartCoroutine(DownloadAndCache()); // First clear all trackables mImageTracker.TargetFinder.ClearTrackables(false); // enable the new result with the same ImageTargetBehaviour: ImageTargetBehaviour imageTargetBehaviour = mImageTracker.TargetFinder.EnableTracking(targetSearchResult, mParentOfImageTargetTemplate) as ImageTargetBehaviour; // ADD THIS TO STOP CLOUD SCAN CloudRecoBehaviour cloudRecoBehaviour = GetComponent <CloudRecoBehaviour>(); cloudRecoBehaviour.enabled = false; //if extended tracking was enabled from the menu, we need to start the extendedtracking on the newly found trackble. if (CloudRecognitionUIEventHandler.ExtendedTrackingIsEnabled) { imageTargetBehaviour.ImageTarget.StartExtendedTracking(); } }
// Here we handle a cloud target recognition event public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { // do something with the target metadata mTargetMetadata = targetSearchResult.MetaData; // stop the target finder (i.e. stop scanning the cloud) mCloudRecoBehaviour.CloudRecoEnabled = false; Debug.Log("Metadata for target: " + mTargetMetadata); if (mTargetMetadata == "courtney") { //show their versions of the AR Content shows.SetActive(true); map.SetActive(true); countdown.SetActive(false); } else if (mTargetMetadata == "magazine") { //show the countdown elements shows.SetActive(false); map.SetActive(false); countdown.SetActive(true); } // Build augmentation based on target if (ImageTargetTemplate) { // enable the new result with the same ImageTargetBehaviour: ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>(); ImageTargetBehaviour imageTargetBehaviour = (ImageTargetBehaviour)tracker.TargetFinder.EnableTracking( targetSearchResult, ImageTargetTemplate.gameObject); } }
public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { message.text = "Target Search Result: " + targetSearchResult.TargetName; TargetFinder.CloudRecoSearchResult cloudRecoResult = (TargetFinder.CloudRecoSearchResult)targetSearchResult; // Build augmentation based on target if (ImageTargetTemplate) { // enable the new result with the same ImageTargetBehaviour: ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>(); tracker.GetTargetFinder <ImageTargetFinder>().ClearTrackables(false); tracker.GetTargetFinder <ImageTargetFinder>().EnableTracking(targetSearchResult, ImageTargetTemplate.gameObject); } if (cloudRecoResult.MetaData == null) { message2.text = "No Meta Data"; } else { message2.text = "MetaData: " + cloudRecoResult.MetaData + "\nTargetName: " + cloudRecoResult.TargetName; webRequestHandler.RequestAssetBundle(cloudRecoResult.MetaData); } }
/// <summary> /// 识别到目标 /// </summary> /// <param name="_targetSearchResult"></param> public void OnNewSearchResult(TargetFinder.TargetSearchResult _targetSearchResult) { if (!sm.isinited) { return; } //1.设置当前状态为得到扫描数据结果 //2.关闭云识别功能模块 //3.反序列化扫描得到的数据到metadata类型对象 //4.使用反序列化得到的对象变量id对服务器数据库发起请求 //5.激活当前识别追踪容器 sm.Getcurrecostatus = Scanstatus.SCANTHERESULTS; cloudrecobehaviour.CloudRecoEnabled = false; //------------将json反序列化为metadata类型对象------------------- //sm.metadaats = JsonUtility.FromJson<Metadata>(_targetSearchResult.MetaData); //------------得到扫描结果对象后向服务器发起查询请求事件------------ Browser.Getinstance().Getitems(_targetSearchResult.UniqueTargetId, Scannermanager.Getinstance().Parsingitemjson, Scannermanager.Getinstance().Onerror); //---------------------激活template追踪容器------------------------ if (imagetargettemplate) { ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>(); ImageTargetBehaviour imageTargetBehaviour = (ImageTargetBehaviour)tracker.TargetFinder.EnableTracking(_targetSearchResult, imagetargettemplate.gameObject); } }
// Here we handle a cloud target recognition event public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { 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) { isfound = true; // enable the new result with the same ImageTargetBehaviour: ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>(); tracker.GetTargetFinder <ImageTargetFinder>().EnableTracking(targetSearchResult, ImageTargetTemplate.gameObject); RText.text = obj.retriveList[targetSearchResult.TargetName][0]; Debug.Log("s c h : " + RText.text); check(targetSearchResult.TargetName); } }
public override TargetFinder.UpdateState Update() { QCARWrapper.Instance.TargetFinderUpdate(this.mTargetFinderStatePtr); this.mTargetFinderState = (TargetFinderState)Marshal.PtrToStructure(this.mTargetFinderStatePtr, typeof(TargetFinderState)); if (this.mTargetFinderState.ResultCount > 0) { IntPtr searchResultArray = Marshal.AllocHGlobal((int)(Marshal.SizeOf(typeof(InternalTargetSearchResult)) * this.mTargetFinderState.ResultCount)); if (QCARWrapper.Instance.TargetFinderGetResults(searchResultArray, this.mTargetFinderState.ResultCount) != 1) { Debug.LogError("TargetFinder: Could not retrieve new results!"); return(TargetFinder.UpdateState.UPDATE_NO_MATCH); } this.mNewResults = new List <TargetFinder.TargetSearchResult>(); for (int i = 0; i < this.mTargetFinderState.ResultCount; i++) { IntPtr ptr = new IntPtr(searchResultArray.ToInt32() + (i * Marshal.SizeOf(typeof(QCARManagerImpl.TrackableResultData)))); InternalTargetSearchResult result = (InternalTargetSearchResult)Marshal.PtrToStructure(ptr, typeof(InternalTargetSearchResult)); TargetFinder.TargetSearchResult item = new TargetFinder.TargetSearchResult { TargetName = Marshal.PtrToStringAnsi(result.TargetNamePtr), UniqueTargetId = Marshal.PtrToStringAnsi(result.UniqueTargetIdPtr), TargetSize = result.TargetSize, MetaData = Marshal.PtrToStringAnsi(result.MetaDataPtr), TrackingRating = result.TrackingRating, TargetSearchResultPtr = result.TargetSearchResultPtr }; this.mNewResults.Add(item); } Marshal.FreeHGlobal(searchResultArray); } return(this.mTargetFinderState.UpdateState); }
/// <summary> /// Handles new search results. /// </summary> /// <param name="searchResult"></param> public virtual void OnNewSearchResult(TargetFinder.TargetSearchResult searchResult) { Debug.Log("ModelReco: new search result available: " + searchResult.TargetName); // Find or create the referenced model target GameObject modelTargetGameObj = null; var existingModelTarget = FindExistingModelTarget((TargetFinder.ModelRecoSearchResult)searchResult); if (existingModelTarget) { modelTargetGameObj = existingModelTarget.gameObject; } if (!modelTargetGameObj) { modelTargetGameObj = new GameObject("ModelTarget_" + searchResult.TargetName); } // Enable the new search result as a Model Target ModelTargetBehaviour mtb = mTargetFinder.EnableTracking( searchResult, modelTargetGameObj) as ModelTargetBehaviour; if (mtb) { mLastRecoModelTarget = mtb; if (StopSearchWhenModelFound) { // Stop the target finder mModelRecoBehaviour.ModelRecoEnabled = false; } } }
// Here we handle a cloud target recognition event public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { 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; }
// Callback - OnNewSearchResult public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { if (targetSearchResult.UniqueTargetId.Equals(this.deposit.id)) { OpenedDepositPopup.instance.Open(deposit); } else { BannerController.instance.showBannerWithText(true, "Błędny depozyt! Znajdź " + this.deposit.name, true); } }
/// <summary> /// Handles new search results. /// </summary> /// <param name="searchResult"></param> public virtual void OnNewSearchResult(TargetFinder.TargetSearchResult searchResult) { Debug.Log("<color=cyan>OnNewSearchResult() called: </color>" + searchResult.TargetName); // Find or create the referenced model target GameObject modelTargetGameObj = null; bool builtFromTemplate = false; var existingModelTarget = FindExistingModelTarget(searchResult); if (existingModelTarget) { modelTargetGameObj = existingModelTarget.gameObject; builtFromTemplate = false; } else if (ModelTargetTemplate) { modelTargetGameObj = Instantiate(ModelTargetTemplate.gameObject); builtFromTemplate = true; } if (!modelTargetGameObj) { Debug.LogError("Could not create a Model Target."); return; } // Enable the new search result as a Model Target ModelTargetBehaviour mtb = targetFinder.EnableTracking(searchResult, modelTargetGameObj) as ModelTargetBehaviour; if (mtb) { this.lastRecoModelTarget = mtb; // If the model target was created from a template, // we augment it with a bounding box game object if (builtFromTemplate && ShowBoundingBox) { OrientedBoundingBox3D modelBoundingBox = mtb.ModelTarget.GetBoundingBox(); var boundingBoxGameObj = CreateBoundingBox(mtb.ModelTarget.Name, modelBoundingBox); // Parent the bounding box under the model target. boundingBoxGameObj.transform.SetParent(modelTargetGameObj.transform, false); } if (this.StopSearchWhenModelFound) { // StopService the target finder this.modelRecoBehaviour.ModelRecoEnabled = false; } } }
// Here we handle a cloud target recognition event public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { log += ";New Search Result - " + targetSearchResult.TargetName + "=" + System.DateTime.Now.ToString("hh:mm:ss.fff"); ResetResults(); //Umwandeln der Metadaten in Objekt mVuforiaObject = new VuforiaObject(); mVuforiaObject = JsonUtility.FromJson <VuforiaObject>(targetSearchResult.MetaData); log += ";Umwandlung der Metadaten fertig= " + System.DateTime.Now.ToString("hh:mm:ss.fff"); switch (mVuforiaObject.type) { case "ExternalLink": // Anzeige des Link-Buttons log += ";Externer Link erkannt= " + System.DateTime.Now.ToString("hh:mm:ss.fff"); linkBtn.onClick.AddListener(() => OpenLink(mVuforiaObject.url)); SetButtonFormat(linkBtnObj, linkBtn); log += ";Externer Link fertig= " + System.DateTime.Now.ToString("hh:mm:ss.fff"); break; case "Video": // Laden des Videos und Anzeige des Play-Buttons log += ";Video erkannt= " + System.DateTime.Now.ToString("hh:mm:ss.fff"); StartCoroutine(LoadVideo((mVuforiaObject.url))); log += ";Video fertig= " + System.DateTime.Now.ToString("hh:mm:ss.fff"); break; case "Audio": // Laden der Audio-Datei und Anzeige des Play-Buttons log += ";Audio erkannt= " + System.DateTime.Now.ToString("hh:mm:ss.fff"); StartCoroutine(LoadAudio(mVuforiaObject.url)); log += ";Audio fertig= " + System.DateTime.Now.ToString("hh:mm:ss.fff"); break; case "3D-Modell": // Laden des 3D-Modells und Anzeige des Modells log += ";3D-Modell erkannt= " + System.DateTime.Now.ToString("hh:mm:ss.fff"); StartCoroutine(InstantiateObject(mVuforiaObject.url)); log += ";3D-Modell fertig= " + System.DateTime.Now.ToString("hh:mm:ss.fff"); break; default: break; } if (mVuforiaObject != null && ImageTargetTemplate) { // enable the new result with the same ImageTargetBehaviour: ImageTargetBehaviour imageTargetBehaviour = (ImageTargetBehaviour)mObjectTracker.TargetFinder .EnableTracking(targetSearchResult, ImageTargetTemplate.gameObject); } log += ";Behaviour fertig= " + System.DateTime.Now.ToString("hh:mm:ss.fff"); }
public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { Debug.Log("PokemonNewSerchResult:" + targetSearchResult.TargetName); if (targetSearchResult.MetaData != null) { //如果多次扫描同一张图,这里只会执行一次 PokemonCloudRecoAction(targetSearchResult.MetaData); } else { Debug.Log("元数据为空"); } }
/// <summary> /// Handles new search results /// </summary> /// <param name="targetSearchResult"></param> // Here we handle a cloud target recognition event public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { TargetFinder.CloudRecoSearchResult cloudRecoSearchResult = (TargetFinder.CloudRecoSearchResult)targetSearchResult; // duplicate the referenced image target newImageTarget = Instantiate(ImageTargetTemplate.gameObject) as GameObject; GameObject augmentation = null; if (augmentation != null) { augmentation.transform.parent = newImageTarget.transform; } // enable the new result with the same ImageTargetBehaviour: imageTargetBehaviour = (ImageTargetBehaviour)mImageTracker.TargetFinder.EnableTracking(targetSearchResult, newImageTarget); // do something with the target metadata mTargetMetadata = cloudRecoSearchResult.MetaData; string[] splitString = mTargetMetadata.Split(new string[] { ",", "\n" }, StringSplitOptions.None); var type = splitString[0]; var iurl = splitString[2]; if (type == "video") { doUpdate = true; Destroy(imageTargetBehaviour.gameObject.transform.Find("dImage").gameObject); Destroy(imageTargetBehaviour.gameObject.transform.Find("Wrapper_RootNode").gameObject); playVideo(); } else if (type == "image") { doUpdate = false; Destroy(imageTargetBehaviour.gameObject.transform.Find("Plane").gameObject); Destroy(imageTargetBehaviour.gameObject.transform.Find("Wrapper_RootNode").gameObject); StartCoroutine(DownloadImage(iurl)); } else { doUpdate = false; Destroy(imageTargetBehaviour.gameObject.transform.Find("dImage").gameObject); Destroy(imageTargetBehaviour.gameObject.transform.Find("Plane").gameObject); Show3DModel(); } if (!mIsScanning) { // stop the target finder mCloudRecoBehaviour.CloudRecoEnabled = true; } }
// Here we handle a cloud target recognition event public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { TargetFinder.CloudRecoSearchResult cloudRecoSearchResult = (TargetFinder.CloudRecoSearchResult)targetSearchResult; // do something with the target metadata mTargetMetadata = cloudRecoSearchResult.MetaData; if ((mTargetMetadata == "alcohol")) { if (ImageTargetTemplate_Alcohol) { // enable the new result with the same ImageTargetBehaviour: ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>(); tracker.GetTargetFinder <ImageTargetFinder>().EnableTracking(targetSearchResult, ImageTargetTemplate_Alcohol.gameObject); } Debug.Log(mTargetMetadata); } else if ((mTargetMetadata == "levepromazina")) { if (ImageTargetTemplate_Levepromazina) { // enable the new result with the same ImageTargetBehaviour: ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>(); tracker.GetTargetFinder <ImageTargetFinder>().EnableTracking(targetSearchResult, ImageTargetTemplate_Levepromazina.gameObject); } Debug.Log(mTargetMetadata); } else if ((mTargetMetadata == "albendazol")) { if (ImageTargetTemplate_Albendazol) { // enable the new result with the same ImageTargetBehaviour: ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>(); tracker.GetTargetFinder <ImageTargetFinder>().EnableTracking(targetSearchResult, ImageTargetTemplate_Albendazol.gameObject); } Debug.Log(mTargetMetadata); } else if ((mTargetMetadata == "metoclopramida")) { if (ImageTargetTemplate_Metoclopramida) { // enable the new result with the same ImageTargetBehaviour: ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>(); tracker.GetTargetFinder <ImageTargetFinder>().EnableTracking(targetSearchResult, ImageTargetTemplate_Metoclopramida.gameObject); } Debug.Log(mTargetMetadata); } // stop the target finder (i.e. stop scanning the cloud) mCloudRecoBehaviour.CloudRecoEnabled = false; }
// Here we handle a cloud target recognition event public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { // do something with the target metadata mTargetMetadata = targetSearchResult.MetaData; // stop the target finder (i.e. stop scanning the cloud) mCloudRecoBehaviour.CloudRecoEnabled = false; // Build augmentation based on target if (ImageTargetTemplate) { // enable the new result with the same ImageTargetBehaviour: ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>(); ImageTargetBehaviour imageTargetBehaviour = (ImageTargetBehaviour)tracker.TargetFinder.EnableTracking(targetSearchResult, ImageTargetTemplate.gameObject); } }
// Here we handle a cloud target recognition event public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { TargetFinder.CloudRecoSearchResult cloudRecoSearchResult = (TargetFinder.CloudRecoSearchResult)targetSearchResult; // do something with the target metadata mTargetMetadata = cloudRecoSearchResult.MetaData; loadAssets.contentParent = transform; loadAssets.namaaset = mTargetMetadata; loadAssets.LoadContent(); restartButton.SetActive(true); // stop the target finder (i.e. stop scanning the cloud) mCloudRecoBehaviour.CloudRecoEnabled = false; }
// Here we handle a cloud target recognition event public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) { // We do clone an instance for each image recognized ImageTargetBehaviour cloneImageTargetBehaviour = Instantiate(imageTargetTemplate); if (cloneImageTargetBehaviour) { // enable the new result with the same ImageTargetBehaviour: ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>(); instance = (ImageTargetBehaviour)tracker.TargetFinder.EnableTracking(targetSearchResult, cloneImageTargetBehaviour.gameObject); setControllers(); this.idDetected = targetSearchResult.UniqueTargetId; GetData(this.idDetected); } }