【Vuforia】010-上傳識(shí)別目標(biāo)圖與下載識(shí)別數(shù)據(jù)

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)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。