【遊戲開發】unity教程10 VR庫 Vuforia

github傳送門:https://github.com/dongzizhu/unity3DLearning/tree/master/hw10/ARtest

B站傳送門:https://space.bilibili.com/472759319

Vuforia安裝

在新建一個unity項目後,以此選擇File -> Build Settings -> Player Settings -> Player->XR Settings,勾選Vuforia Argumented Reality Support。

然後進入官網下載安裝文件,安裝給對應版本的項目即可。

 

創建數據庫

上官網:https://developer.vuforia.com註冊一個賬號,然後登陸後即可看到下圖

然後點擊右側Get Developmen Key,見到下圖。

在這裏創建一個新的License,創建後可以看到下圖。

然後進入Target Manager,點擊Add Database創建一個新的數據庫。

創建好之後就可以在Target Manager中找到了,點擊進入後選擇Add Target。

這裏上傳一張找好的用於定位的圖片即可。圖片應該儘量對比度高一些,紋理相對複雜,可以直接在黑白紋身圖照一張你喜歡的:)。上傳成功後就可以點擊右邊的Download Database下載了。而且這裏可以看到你上傳的圖片的評分,得分越高越便於識別。

虛擬按鍵

接下來在項目中,我們就可以直接新建Vuforia Engine對象Image和ARCamera了。其中在ARCamera中我們可以在Vuforia Behavior組件中打開configuration。

然後在App License Key中填上在官網中License Manager點開對應license找到的Key即可。

然後我們在新建的Image Target下新建一個動畫,這裏我選擇的是之前在Asset Store免費下載的StoneMonster。接着在Image Target Behaviour組件的Advanced欄下選擇Add Virtual Button,並改名字爲up。最後在up這個Button下新建一個plane作爲按鈕的實體,其名爲upPlane。

下面就可以來完成代碼邏輯了。這裏我們簡單地做一個demo:讓每次按下button,monster上升;鬆開button,monster下降。具體代碼如下。

using UnityEngine;
using Vuforia;

public class buttonBehaviour : MonoBehaviour, IVirtualButtonEventHandler
{
    public GameObject vbs;
    public Animator animator;

    void Start()
    {
        VirtualButtonBehaviour vbb = vbs.GetComponent<VirtualButtonBehaviour>();
        if (vbb)
        {
            vbb.RegisterEventHandler(this);
        }
    }

    public void OnButtonPressed(VirtualButtonBehaviour vb)
    {
        Debug.Log("Pressed");
        animator.transform.Translate(Vector3.up /100);
        
    }

    public void OnButtonReleased(VirtualButtonBehaviour vb)
    {
        
        Debug.Log("Released");
        animator.transform.Translate(Vector3.down / 100);
    }
}

我們將這個腳本掛載在ImageTarget上,然後將Vbs和Animator都選成對應的對象即可。

最後,我們只要讓圖片完整地出現在鏡頭前一次,就可以完成識別了。最終的效果截圖如下所示,演示視頻見文章開頭的傳送門。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章