高通Vuforia(Unity3D)云识别初级使用教程
高通Vuforia(Unity3D)云识别初级使用教程
最近因项目开发需要,接触了高通的AR引擎Vuforia云识别,个人感觉稳定性还是很不错的,唯一不爽的地方就是免费的云识别库每个月只能识别1000次,想继续使用只能重新再建一个云识别库或者拿钱了(苦逼)。。。
正赶上现在有点时间,也把自己这段时间所学到的给大家分享一下,比较小白,打算勿喷(ha ha ha ha ...)
先上传送门:
高通Vuforia:https://developer.vuforia.com/
下面教程开始:
1、官网注册登录并且创建许可证管理器(License Manager)和目标管理器(Target Manager)------步骤略(网上教程一大堆---度娘传送门)
保存好许可证管理器里的Key值和目标管理器的Client Access Keys
2、之后下载Vuforia的Unity3D版本SDK--------传送门
导入之后的效果 ↑↑↑↑↑↑
之后把场景内主摄像机删除,把Assets\Vuforia\Prefabs\ARCamera 预制拖入Hierarchy窗口
然后相同方式拖入CloudRecognition、ImageTarget两个预制
1、点击菜单栏Vuforia->configuration 在右侧App License Key中填入可证管理器里的Key值
2、点击Hierarchy窗口中的CloudRecognition,在Inspector面板中填入目标管理器的Client Access Keys
3、点击Hierarchy窗口中的ImageTarget,在Inspector面板中ImageTargetBehaviour的参数改为
4、模型拖为ImageTarget子物体,更改位置(模型为半成品-演示所用,勿喷)
下面新建脚本,开始码脚本吧,苦逼。。。
5、任意物体上新建脚本,名称暂定为:CloudRecoManage,双击打开
记得必须要using Vuforia 并且继承ICloudRecoEventHandler并实现
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 代码在此 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Vuforia; //添加引用 public class CloudRecoManage : MonoBehaviour, ICloudRecoEventHandler //继承接口并实现
{
//声明两个变量
private GameObject mImageTarget; //ImageTarget的Object对象
private ObjectTracker mObjectTracker; //跟踪器变量 (个人理解)识别出的物体就靠它才能跟着图片移动 //需要保留Start方法 初始化用
void Start()
{
//把这个脚本和CloudRecoBehaviour云识别进行绑定 --不然脚本怎么知道哪个云识别模块给这个脚本提供识别信息呢~ //获取到场景中的云识别组件 因为我们只有一个云识别 所以不用担心冲突
CloudRecoBehaviour cloudRecoBehaviour = FindObjectOfType<CloudRecoBehaviour>(); //把云识别和脚本绑定
cloudRecoBehaviour.RegisterEventHandler(this);
} public void OnInitError(TargetFinder.InitState initError)
{
//初始化错误
Debug.Log("初始化错误:" + initError);
} public void OnInitialized()
{
//初始化
Debug.Log("初始化开始"); //获取ImageTarget的Object对象
mImageTarget = FindObjectOfType<ImageTargetBehaviour>().gameObject; //获取追踪管理器
mObjectTracker = TrackerManager.Instance.GetTracker<ObjectTracker>();
} public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
{
//搜索到新的目标
Debug.Log("搜索到目标:" + targetSearchResult.TargetName);
if (targetSearchResult.TargetSize <= ) //判断targetSearchResult是否符合要求
return;
//搜索到新的目标关闭ClearTrackables
mObjectTracker.TargetFinder.ClearTrackables(false); //启动追踪 很简单 两个参数1、识别到的目标 2、生成的物体 两个同步运动
mObjectTracker.TargetFinder.EnableTracking(targetSearchResult, mImageTarget);
} public void OnStateChanged(bool scanning)
{
//云识别状态改变
Debug.Log("云识别状态:" + scanning);
//云识别开启时关闭ClearTrackables
if (scanning)
mObjectTracker.TargetFinder.ClearTrackables(false);
} public void OnUpdateError(TargetFinder.UpdateState updateError)
{
//云识别错误
Debug.Log("云识别错误:" + updateError); }
}
CloudRecoManage
接下来点击运行(截图压缩了,有点不清楚)
终于写完了,全原创,欢迎交流QQ:1107628852(加备注)
高通Vuforia(Unity3D)云识别初级使用教程的更多相关文章
- 高通vuforia+Unity3D 制作ar app
很简单就可以用Unity3D做出增强现实的一个小例子 新人第一次写博客,若出现错误望指正^_^ 需要下载de东西: unity3d 5.0 http://unity3d.com/get-unity ...
- [AR]高通Vuforia Getting Started
Vuforia Getting Started 简介 Vuforia创建增强现实应用程序是一个软件平台.开发人员可以轻松地将先进的计算机视觉功能添加到任何应用程序中,允许它识别图像和对象,或在现实 ...
- GJM : Unity3D 高通Vuforia SDK AR 开发
一.AR概念: 增强现实(Augmented Reality,简称AR),是在虚拟现实的基础上发展起来的新技术,也被称之为混合现实.是通过计算机系统提供的信息增加用户对现实世界感知的技术,将虚拟的信息 ...
- Unity+高通Vuforia SDK——AR
一.AR概念: 增强现实(Augmented Reality,简称AR),是在虚拟现实的基础上发展起来的新技术,也被称之为混合现实.是通过计算机系统提供的信息增加用户对现实世界感知的技术,将虚拟的信息 ...
- 这几天用高通VUFORIA的体会
VUFORIA 主要用来做图像识别,先把图片上至网站,然后网站分析生成数据包 在UNITY中导入VUFORIA SDK和数据包后,就可以正常使用了 对了,数据包需要勾选Load Active那个选项, ...
- 高通Vuforia
这里使用高通的Vuroria来做一个AR歌姬. 工具: Vuforia,MMD4Mecanim 模型: 初音未来pmd模型文件,极乐净土vmd动作文件. 逻辑: 当发现识别卡时:开启音乐,模型速度为1 ...
- Unity3d使用高通Vuforia发布IOS工程不支持64位的一些解决办法
1.将Unit升级至4.6.x或5.0.x,将Vuforia差距升级到最新版本(vuforia-unity-mobile-android-ios-4-0-105 ) 2.平台Other Setting ...
- [AR]高通Vuforia之Frame Markers
软件环境 SDK:FrameMarkers-6-0-112.unitypackage(从官网 -> Download -> Samples -> Core Features 下载 ) ...
- UNITY使用高通Vuforia导出XCode包编译出错
1.referenced from: in libVuforia.a 此处重新导入引用库并按http://game.ceeger.com/forum/read.php?tid=20447(三楼处理方式 ...
随机推荐
- C++写日志方法调试
调试方法有很多 介绍一种奇怪的?调试方法哈哈 通过WriteLog记录返回值查看返回结果. string str_log;stringstream ssteam;ssteam << &qu ...
- Java中Date时间类
Date:表示特定的瞬间,精确到毫秒. 构造方法: Date():根据当前的默认毫秒值创建日期对象 Date(long date):根据给定的毫秒值创建日期对象 public static void ...
- js上传文件前判断获取文件大小并且加以判断
描述:要求浏览器单个上传文件大小不超过10M. 解决方案: var fileSize = $("#fileId")[0].files[0].size/(1024*1024);if( ...
- 《HelloGitHub》第 49 期
兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这是一个面向编程新手.热爱编程.对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编 ...
- mysql 复制表结构和数据
CREATE TABLE 新表名 SELECT 字段 as 新字段,字段 as 新字段.....from 旧表名:
- centos7下端口映射
firewall-cmd --zone=external --add-forward-port=port=:proto=tcp:toport=:toaddr=192.168.10.10 --perma ...
- qt tableview 选择模式
QAbstractItemView::SingleSelection QAbstractItemView::ContiguousSelection QAbstractItemView::Extende ...
- JVM原理以及深度调优(二)
JVM内存分配 内存分配其实真正来讲是有三种的.但对于JVM来说只有两种 栈内存分配: 大家在调优的过程中会发现有个参数是-Xss 默认是1m,这个内存是栈内存分配, 在工作中会发现栈OutOfMem ...
- 源码安装nginx 方法二
yum 仓库不能用大写字母 [root@oldboy conf.d]# gzip * 压缩当前目录下的所有文件 gzip ./* gzip . gzip./ # 关闭防火墙和selinux [root ...
- Python 正则表达式——re模块介绍
Python 正则表达式 re 模块使 Python 语言拥有全部的正则表达式功能,re模块常用方法: re.match函数 re.match从字符串的起始位置匹配,如果起始位置匹配不成功,则matc ...