高通Vuforia云识别 真·完整方法

第一行敬度娘
首先是Vuforia官方文档英文说水平好的或者有翻译工具的点这里

接下来是懒人教程
首先下载插件(2017版本的集成了就不用下了)
然后注册高通账号(估计看这里的人应该都有了我依旧贴个注册
这里写图片描述
之后进入你的管理界面
这里写图片描述
这里写图片描述
这里写图片描述
完事你就能看到
这里写图片描述
点击进去
这里写图片描述
把这个key粘到Unity的VuforiaConfiguration的AppLicenseKey里就可以了
这里写图片描述
然后之前的准备工作就OK了 因为我这里主要是讲云识别所以本地识别的方法我就赘述了自行百度就可以了。
接下来 我们先把服务器端的事情处理完然后再回到Unity中。
首先是上传图片到高通的服务器供我们作为云识别的数据;
这里写图片描述
这里写图片描述
这里我做些说明主要是selectLicenseKey选项,每一个云识别库只能都会对应一个key反之也是。所以这里下来如果没有的话就新建一个就好了。
这里写图片描述
成功之后就能看到了,然后点进去添加你的识别图
这里写图片描述
找到这一页
这里写图片描述
等在这里(哦,在这停顿)
接下来是Unity的操作
在导入或者添加AR插件之后将CloudRecognition预制体/组件添加入场景里
然后再CloudRecoBehaviour中填入上面的key注意别填反了。
完成之后丢一个ImageTarget在场景中
这里写图片描述
这里写图片描述
选为云识别
然后再ImageTarget下建一个子物体用来测试识别到了显示出来物体。
完成上述工作之后新建一个脚本,这里我使用的是官方案例的脚本名字SimpleCloudHandler将他和CloudRecoBehaviour组件放在一个物体上
这里写图片描述
把ImageTarget拖到参数槽中
然后下面是脚本内容

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Vuforia;

public class SimpleCloudHandler : MonoBehaviour ,ICloudRecoEventHandler{

    private CloudRecoBehaviour mCloudRecoBehaviour;
    private bool mIsScanning = false;
    private string mTargetMetadata = "";
    public ImageTargetBehaviour ImageTargetTemplate;
    // Use this for initialization
    void Start () {

        mCloudRecoBehaviour = GetComponent<CloudRecoBehaviour>();
        if (mCloudRecoBehaviour)
        {
            mCloudRecoBehaviour.RegisterEventHandler(this);
        }
    }
    /// <summary>
    /// 初始化完成
    /// </summary>
    public void OnInitialized()
    {
        Debug.Log("Cloud Reco initialized");
    }
    /// <summary>
    /// 初始化失败
    /// </summary>
    /// <param name="initError"></param>
    public void OnInitError(TargetFinder.InitState initError)
    {
        Debug.Log("Cloud Reco init error " + initError.ToString());
    }

    /// <summary>
    /// 刷新失败
    /// </summary>
    /// <param name="updateError"></param>
    public void OnUpdateError(TargetFinder.UpdateState updateError)
    {
        Debug.Log("Cloud Reco update error " + updateError.ToString());
    }

    /// <summary>
    /// 状态变更开始识别
    /// </summary>
    /// <param name="scanning"></param>
    public void OnStateChanged(bool scanning)
    {
        mIsScanning = scanning;
        if (scanning)
        {
            Debug.Log("true");
            ObjectTracker tracker = TrackerManager.Instance.GetTracker<ObjectTracker>();
            tracker.TargetFinder.ClearTrackables(false);
        }
    }
    /// <summary>
    /// 识别成功
    /// </summary>
    /// <param name="targetSearchResult"></param>
    public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
    {
        mTargetMetadata = targetSearchResult.MetaData;
        Debug.Log(targetSearchResult.MetaData);
        mCloudRecoBehaviour.CloudRecoEnabled = false;

        // 加载识别后要显示物体
        if (ImageTargetTemplate)
        {
            Debug.Log("找到");
            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;
            }
        }
    }
}

脚本中主要就是继承了ICloudRecoEventHandler接口实现接口中的方法来对应识别成功后的各种操作。OnGui中的方法不是必须的根据需要选择,这里说两个注意
1.mCloudRecoBehaviour.CloudRecoEnabled = false;开关识别功能,也就是相机依旧显示真是场景但是没有开启识别功能。
2. mCloudRecoBehaviour.RegisterEventHandler(this);这里必须注册保证唯一性。
然后,运行场景。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值