實驗環境
- MAC,
- Unity:2018.4,
- Vuforia(Unity自帶插件)
使用方法
由於Vuforia只支持unity2018及以前版本,可以通過Unity Hub下載,在選擇安裝模塊時需要額外選擇Vuforia支持插件。
這樣下載完成後,使用該版本unity新建一個場景,菜單 GameObject 中就會出現 Vuforia Engine 的選項
注意: 2018版本將vuforia的部分功能集成到了一塊,所以部分功能使用的位置不一樣。
使用步驟
設置Vuforia
- 將場景中的自帶camera刪除,從
GameObject->Vuforia Engine
中選擇 AR Camera。 - 通過
File->Build Settings->player Settings->XR Settings
,勾選Vuforia相關項。 - 選擇ARCamera的檢視界面中的
Vuforia Behaviour
,點擊進入設置界面,將自己在Vuforia官網上註冊的License貼入對應框內。 - 將自己在官網上創建的數據庫以Unity Editor的形式下載到本地,然後通過Unity導入進來,Vuforia會自動識別導入的數據庫。當然數據庫中先要上傳至少一張識別圖(任意,只要Vuforia對它的打分夠高就行)
創建場景
- 在場景內新建一個Image(
GameObject->Vuforia Engine->Image
) - 在上一步新建的Image對象下掛載一個子對象(這個子對象就是要顯示的3D對象)。
- 增加一個 Virtual Button ,注意這個功能不在GameObject菜單中,而是集成在第一步創建的對象的檢視面板,
Image Target Behaviour
組件中,點開Advanced
,裏面就存在創建虛擬按鈕的選項。 - 注意Virtual Button是沒有渲染的,因此需要在按鈕下面增加一個子對象用於顯示文字等內容,可以是一個平面(plane),平面下再掛在一個3D Text(
GameObject->3D Object->3D Text
)。 - 在第一步創建的對象上掛載一個腳本用於控制虛擬按鈕的狀態。這裏需要實現
IVirtualButtonEventHandler
類的OnButtonPressed
方法(按鈕按下)以及OnButtonReleased
方法(按鈕釋放)。
作爲參考:
using UnityEngine;
using Vuforia;
public class VirtualButton : MonoBehaviour, IVirtualButtonEventHandler
{
public GameObject vb;
public Animator ani;
void Start()
{
VirtualButtonBehaviour vbb = vb.GetComponent<VirtualButtonBehaviour>();
if (vbb)
{
vbb.RegisterEventHandler(this);
}
}
public void OnButtonPressed(VirtualButtonBehaviour vbb)
{
ani.SetTrigger("Run");
Debug.Log("按鈕按下");
}
public void OnButtonReleased(VirtualButtonBehaviour vbb)
{
ani.SetTrigger("Walk");
Debug.Log("按鈕釋放");
}
}
- 將識別圖片顯示在另外一個設備上,對準電腦的攝像頭,點擊運行:
以下展示整個場景結構: