Vuforia云识别

来源:互联网 发布:在线算法的特点 编辑:程序博客网 时间:2024/06/05 20:05

1.拖入ARCamera预制件,填写App License Key;

拖入ImageTarget预制件,ImageTargetBehaviour组件的Type改为Cloud Reco;

拖入CloudRecognition预制件,填写创建云识别库时生成的Client端的Access Key和Secert Key;

2.新建SimpleCloudHandler.cs挂在CloudRecognition预制件上。代码如下:

using System.Collections;using System.Collections.Generic;using UnityEngine;using Vuforia;public class SimpleCloudHandler1 : MonoBehaviour, ICloudRecoEventHandler{    public ImageTargetBehaviour ImageTargetTemplate;    private CloudRecoBehaviour mCloudRecoBehaviour;    private bool mIsScanning = false;    private string mTargetMetadata = "";    // Use this for initialization    void Start()    {        // register this event handler at the cloud reco behaviour        mCloudRecoBehaviour = GetComponent<CloudRecoBehaviour>();        if (mCloudRecoBehaviour)        {            mCloudRecoBehaviour.RegisterEventHandler(this);        }    }    public void OnInitialized()    {        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            //ImageTracker tracker = TrackerManager.Instance.GetTracker<ImageTracker>();            //tracker.TargetFinder.ClearTrackables(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);        }    }    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;            }        }    }}
ps:如果识别不出来,问题可能是网络不好。

原创粉丝点击