一.创建KEY就不详说了
![]()
二.创建VuMark图片
![]()
![](https://img-blog.csdn.net/20170725111141878?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzU1NTk0MDQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170725111154870?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzU1NTk0MDQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170725111203264?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzU1NTk0MDQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![]()
![]()
Download DataBase 将资源导入 unity 其中Gnerate VuMark用于下载供手机扫描的不同ID图片
![](https://img-blog.csdn.net/20170725111214908?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzU1NTk0MDQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
三,将图中两个预制物拖入Hierarchy中
![]()
![](https://img-blog.csdn.net/20170725094512812?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzU1NTk0MDQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
填入key 勾选资源包
![]()
![](https://img-blog.csdn.net/20170725111541222?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzU1NTk0MDQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
四,修改图片的Texture type
![]()
![](https://img-blog.csdn.net/20170725111438233?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzU1NTk0MDQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
五,在VuMark物体上挂上如图脚本
![]()
![](https://img-blog.csdn.net/20170725094416132?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzU1NTk0MDQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
五,新建一个物体 管理VuMark
![]()
![](https://img-blog.csdn.net/20170725094626731?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzU1NTk0MDQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170725094737444?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzU1NTk0MDQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
六,编写脚本VuMarkMethod
![]()
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Vuforia;
public class VuMarkMethod : MonoBehaviour
{
// I am girl!!!!
public VuMarkManager mVuMarkManager;
public int vuMarkID;
private int defID = -1;
void Start () {
//赋值
mVuMarkManager = TrackerManager.Instance.GetStateManager().GetVuMarkManager();
//注册事件
mVuMarkManager.RegisterVuMarkDetectedCallback(OnVuMarkDetected);
mVuMarkManager.RegisterVuMarkLostCallback(OnVuMarkLost);
vuMarkID = defID;
}
//当销毁时 注销事件
void OnDestroy()
{
// unregister callbacks from VuMark Manager
mVuMarkManager.UnregisterVuMarkDetectedCallback(OnVuMarkDetected);
mVuMarkManager.UnregisterVuMarkLostCallback(OnVuMarkLost);
}
//当丢失图片时
private void OnVuMarkLost(VuMarkTarget obj)
{
print("相机没有扫描到图片");
// 将当前存储ID 改为默认ID
vuMarkID = defID;
}
//当追踪到图片时
private void OnVuMarkDetected(VuMarkTarget obj)
{
print("相机扫描到了目标图片");
//获取图片的ID
vuMarkID = int.Parse(GetVuMarkString(obj));
}
//获取具体内容,最终返回string 类型
private string GetVuMarkString(VuMarkTarget vumark)
{
switch (vumark.InstanceId.DataType)
{
case InstanceIdType.BYTES:
return vumark.InstanceId.HexStringValue;
case InstanceIdType.STRING:
return vumark.InstanceId.StringValue;
case InstanceIdType.NUMERIC:
return vumark.InstanceId.NumericValue.ToString();
}
return "";
}
}
七,另外 VuMarkBehaviour还提供的一些其他的获取当前状态的方法
public VuMarkBehaviour vuMark;
//如果当前状态为没有找到目标状态 (当然还有其他枚举状态)
if (vuMark.CurrentStatus == TrackableBehaviour.Status.NOT_FOUND){ }
八, 在VuMark下建子物体 类似于像ImageTarget一样的功能