在Unity平台上将高通Vuforia项目转换成metaio SDK项目
创建基本Unity应用程序
本教程对比使用metaio SDK和高通Vuforia(高通Vuforia是Qualcomm Connected Experiences公司的软件产品)创建基本Unity AR应用所需要的基本步骤。本教程适用于欲将高通Vuforia项目转换成为metaio SDK项目的用户
Qualcomm® Vuforia™ | | 开发环境的设置 | - 向Unity导入SDK(Assets -> Import Package -> Custom Package... -> 'Vuforia™ SDK'.unitypackage)
| - 下载并安装metaio SDK
- 向Unity导入SDK(Assets -> Import Package -> Custom Package... -> 'Metaio SDK'.unitypackage)
提示:在Windows 平台上,Unity 必须以OpenGL 模式(使用-force-opengl 标签)开启才能运行metaio SDK | 创建一个简单的场景 |
添加摄像头
- 删除Main Camera
- 添加AR Camera(Assets/Qualcomm Augmented Reality/Prefabs)
添加Image Target
- 向场景添加Image Target(Assets/Qualcomm Augmented Reality/Prefabs)
- 在License Manager中添加Database
- 添加一个Target
- 选择创建的数据库
- 添加Target(Type: Single Image),选择文件(.jpg or .png),设置宽度和名称
- 下载Database(用于Unity Editor)
- 向Unity导入Database(Assets -> Import Package -> Custom Package… -> ‘TargetName’.unitypackage)
- 设置Image Target(将Image Target GameObject中的Database设置为生成的Database(位于ImageTargetBehaviour脚本中),将Image Target设置为创建的Target)
增添视觉元素
- 在场景中添加用来视觉化的GameObject,(按需缩放)
- 将GameObject设置为Image Target的子类
|
添加摄像头
- 移除Main Camera
- 添加metaioSDK(Assets/metaio/Prefabs),这会添加一个新摄像头
添加Image Target(追踪图片)
- 在metaio Creator中创建新工程,并添加追踪目标(Unity中的Target和metaio Creator/SDK中的Trackable是一样的)
- 从Creator以压缩包形式导出追踪文件(Export -> Export Tracking Configuration File)
注意:metaio Creator是metaio推出的具有图形界面的AR场景制作工具,是SDK Pro的随赠产品(也有demo版本)。
- 向Unity中的StreamingAssets文件夹导入生成的.zip文件
- 将.zip文件添加到metaioSDK GameObject的MetaioSDK脚本中
其他方法:
- 将图片直接添加到Unity工程包中(StreamingAssets文件夹中)
- 设置路径(打开metaioSDK GameObject中的tracking.xml,将ReferenceImage更改为图片文件的路径)
增添视觉元素
- 在场景中添加用来视觉化的GameObject,(按需缩放)
- 在metaioSDK GameObject中,将GameObject设置为metaioTracker的子类
| 处理指触事件 | - 向Image Target Object添加一个脚本(我们叫它VBEventHandler),用它来实现IVirtualButtonEventHandler
- 找到所有需要点击事件的Image Target子类GameObject,对它们添加继承于VirtualButtonAbstractBehaviour的脚本
- 在VBEventHandler中定义OnButtonPressed函数
| - 对GameObject添加GestureHandler.cs脚本,从而使其位移、角度和尺寸能够用指触或点击事件控制
或者
- 监听指触输入(参考下面代码片段1)
- 选择相应GameObject
- 将GameObject放到一个特定的Layer
- 从Camera发送RayCast,并检测是否有触点
| 监听追踪事件 | - 创建新脚本,用来实现ITrackableEventHandler
- 定义函数OnTrackingFound和OnTrackingLost
- 将脚本赋给需要追踪的对象
- 将对象的DefaultTrackableEventHandler移除
| - 移除metaioSDK对象的metaioCallback
- 创建一个新脚本并继承metaioCallback,将其赋给任何对象
- 覆盖onTrackingEvent
- 读取trackingValues.state
- 参考下面代码片段2
| 发布应用 | 预览
发布
- 创建License Key
- 将License Key添加到QCARBehaviour脚本中的阈值(AR Camera GameObject)App License Key中
- 请确保安卓或IOS平台的Player Settings已经设置好
- 在Build Settings中添加场景
- 编译并将应用发布到设备上
| 预览
发布
- 用户需要生成application signature来发布应用。向Windows平台发布的话,请打开appKeys.xml,并使用AppID来生成application signature。而对于安卓或IOS平台,在Player Settings中设置Bundle Identifier即可
- 在metaio开发者官网注册AppID或bundle identifier,从而生成相应的application signature
- 将生成的application signature添加到位于metaioSDK GameObject中的metaio SDK脚本里面的阈值SDK Signature
- 请确保安卓或IOS平台的Player Settings已经设置好
- 在Build Settings中添加场景
- 编译并将应用发布到设备上
注意事项:
- 在Windows平台上,用户需要使用-force-opengl来开启OpenGL模式
- IOS应用无法直接通过Unity来发布。您需要在添加所需函数库之后,编译导出的Xcode工程
|
代码片段
本段罗列上文中所用到的代码片段- 代码片段1:处理点击事件
- C#
- Copy Code
- private void handleTouches()
- {
- // if there's touch points and the phase is began->try to select the geometry
- if (input.touchCount > 0 && Input.GetTouch (0).phase == TouchPhase.Began)
- selectGameObject (Input.GetTouch) (0).position);
- }
-
- public void selectGameObject(Vector2 position)
- {
- // get a ray from the touch point
- Ray ray = Camera.main.ScreenPointToRay (position);
-
- // layer mask, Metaioman is on layer 9
- layerMask = 1 << 9;
-
- // cast a ray on layer 9 if Metaioman has been hit
- if (Physics.Raycast (ray, out hit, 5000, layerMask))
- {
- // do something
- }
- }
复制代码- Code Snippet 2: Custom Callback for tracking events
- 代码片段2:自定义追踪事件回调函数
- C#
- Copy Code
- public class CustomCallback : metaioCallback {
- override protected void onTrackingEvent (List<TrackingValues> trackingValues)
- {
- foreach (TrackingValues tv in TrackingValues)
- {
- if (tv.state.isTrackingState())
- {
- // do something
- }
- }
- }
- }
复制代码
支持的平台
Metaio SDK支持在IOS、Windows和Mac OS X上的Unity 32/64位
而且,metaio SDK支持IOS(32/64位)、安卓(32位)和Windows(32位)的原生(非Unity)应用
Metaio SDK可免费使用(带水印),如需去除水印和闪屏,请咨询metaio和代理商
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|
|
|
|
|