1、選擇目標(biāo)圖
選擇了一個(gè)與模型寒冰相關(guān)的圖片
AIXI.jpg
2、上傳圖片到官網(wǎng)的數(shù)據(jù)庫(kù)
img.png
3、查看該圖片目標(biāo)的識(shí)別星級(jí)
img.png
4、下載數(shù)據(jù)到本地
img.png
img.png
瀏覽器會(huì)下載.unitypackge的包,包名與你創(chuàng)建的數(shù)據(jù)集名字一樣,導(dǎo)入unity即可。
5.在unity中選擇自己的數(shù)據(jù)
img.png
6.控制模型的生成
創(chuàng)建腳本AR,附加在imagTagert,移除自身的,繼承接口 ITrackableEventHandler
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Vuforia;
public class AR : MonoBehaviour, ITrackableEventHandler
{
protected TrackableBehaviour mTrackableBehaviour; //聲明可識(shí)別行為腳本
public GameObject AIXIPrefab;//模型預(yù)制
private GameObject aixi; //生成的模型
protected virtual void Start()
{
mTrackableBehaviour = GetComponent<TrackableBehaviour>();
if (mTrackableBehaviour)
mTrackableBehaviour.RegisterTrackableEventHandler(this);
}
protected virtual void OnDestroy()
{
if (mTrackableBehaviour)
mTrackableBehaviour.UnregisterTrackableEventHandler(this);
}
/// <summary>
/// 狀態(tài)的改變
/// </summary>
public void OnTrackableStateChanged(
TrackableBehaviour.Status previousStatus,
TrackableBehaviour.Status newStatus)
{
if (newStatus == TrackableBehaviour.Status.DETECTED ||
newStatus == TrackableBehaviour.Status.TRACKED ||
newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED)
{
Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " found");
OnTrackingFound();
}
else if (previousStatus == TrackableBehaviour.Status.TRACKED &&
newStatus == TrackableBehaviour.Status.NOT_FOUND)
{
Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " lost");
OnTrackingLost();
}
else
{
OnTrackingLost();
}
}
/// <summary>
/// 識(shí)別到物體
/// </summary>
protected virtual void OnTrackingFound()
{
aixi = GameObject.Instantiate(AIXIPrefab);
aixi.transform.position = this.transform.position;
aixi.transform.SetParent(this.transform);
}
/// <summary>
/// 丟失物體
/// </summary>
protected virtual void OnTrackingLost()
{
if (aixi != null)
{
Destroy(aixi);
}
}
}
主要接口方法:
OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus)