Hello,
I just have a quick question.
After applying the script 'SimpleCloudRecoEventHandler' I don't have the input field for my reference image.
This is my script :
using UnityEngine;
using Vuforia;
public class SimpleCloudRecoEventHandler : MonoBehaviour { private CloudRecoBehaviour mCloudRecoBehaviour; private bool mIsScanning = false; private string mTargetMetadata = ""; public ImageTargetBehaviour ImageTargetTemplate;
// Register cloud reco callbacks void Awake() { mCloudRecoBehaviour = GetComponent<CloudRecoBehaviour>(); mCloudRecoBehaviour.RegisterOnInitializedEventHandler(OnInitialized); mCloudRecoBehaviour.RegisterOnInitErrorEventHandler(OnInitError); mCloudRecoBehaviour.RegisterOnUpdateErrorEventHandler(OnUpdateError); mCloudRecoBehaviour.RegisterOnStateChangedEventHandler(OnStateChanged); mCloudRecoBehaviour.RegisterOnNewSearchResultEventHandler(OnNewSearchResult); } //Unregister cloud reco callbacks when the handler is destroyed void OnDestroy() { mCloudRecoBehaviour.UnregisterOnInitializedEventHandler(OnInitialized); mCloudRecoBehaviour.UnregisterOnInitErrorEventHandler(OnInitError); mCloudRecoBehaviour.UnregisterOnUpdateErrorEventHandler(OnUpdateError); mCloudRecoBehaviour.UnregisterOnStateChangedEventHandler(OnStateChanged); mCloudRecoBehaviour.UnregisterOnNewSearchResultEventHandler(OnNewSearchResult); } public void OnInitialized(TargetFinder targetFinder) { Debug.Log("Cloud Reco initialized"); } 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 OnStateChanged(bool scanning) { mIsScanning = scanning; if (scanning) { // clear all known trackables var tracker = TrackerManager.Instance.GetTracker<ObjectTracker>(); tracker.GetTargetFinder<ImageTargetFinder>().ClearTrackables(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); } }
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; } } } }
I have this error Assets\Editor\SimpleCloudRecoEventHandler.cs(53,35): error CS0246: The type or namespace name 'TargetFinder' could not be found (are you missing a using directive or an assembly reference?)
Can anyone tell me why?
Thanks
Hey there,
Hey there,
You're experiencing the same issue as someone else on the forums. Please check my response here: https://developer.vuforia.com/forum/cloud-recognition/error-vuforia-cloud#comment-74491
I will close the thread, but please create a new one if needed.