配置Unity的Android環境
配置環境
1。在工具欄選擇File -> Build Settings,在平臺列表選擇Android,點選Switch Platform轉換平臺。
2。在工具欄選擇Window -> Package Manager,在介面中下載
AR Foundation,ARCore XR Plugin
。
3。在工具欄選擇Edit -> Project Settings -> Player ->Other Settings,刪除
vulkan
,取消
Multithreaded Rendering
。
遇到的錯誤
出現瞭如下錯誤:
1。D:\Download\artemplate-master\Temp\gradleOut\unityLibrary\src\main\java\com\unity3d\player\UnityPlayerActivity。java使用或覆蓋了已過時的 API。
這只是個提示,提醒API已過時,但不影響執行。
2。Missing ‘package’ key attribute on element package at :arcore_client……。
關鍵出錯點,解決辦法參考:
影象跟蹤
影象跟蹤的基本操作
1。建立一個參考影象庫,為了更好的分類管理,在Assets下新建一個資料夾命名為ImageLib,右鍵
Create -> XR -> Reference Image Library
,將新建的參考庫命名為
RefImgaeLib
。
參考影象庫用來儲存一系列的參考影象用於對比,每一個影象跟蹤程式都必須有一個參考影象庫,但需要注意的是,參考影象庫中儲存的實際是參考影象的特徵值資訊而不是原始影象,這有助於提高對比速度與魯棒性。參考影象庫越大,影象對比就會越慢,建議參考影象庫的影象不要超過1000張。
2。在Assets下新建一個Pictures資料夾,用來存放要識別的影象。選擇剛剛新建的參考庫(RefImageLib),在Inspector面板選擇
Add Image
新增參考影象,選擇要識別的影象,勾選
Specify Size
和
Keep Texture of Runtime
,並且設定Specify Size下面的
Physical Size
(這個值可以多嘗試,確定一個合適的大小)。
Specify Size:為加速影象檢測識別過程,一些底層SDK要求提供一個2D待檢測影象的物理尺寸,所以如果要設定,這個值一定會是一個大於0的長寬值對,當一個值發生變化時,Unity會根據參考影象的比例自動調整另一個值。
3。在Assets下新建一個Prefabs資料夾,用來存放要顯示的三維模型(可以先在Hierarchy面板新建模型後將其拖入Prefabs資料夾,並將Hierarchy中的模型刪除掉)。
AR Session Origin元件的作用是將可跟蹤物件(如平面和特徵點)姿態資訊轉換為Unity場景中的最終位置、方向和比例。
AR中Session用來管理 AR 應用的狀態、處理 AR 應用生命週期,是 AR API的主要入口,由其控制在目標平臺上啟用或禁用AR。
5。選擇AR Session Origin,為其新增一個
AR Tracked Image Manager
元件,在Reference Library選項選擇第一步新建的參考庫RefImageLIb,在Tracked Image Prefab選項選擇想要顯示的三維模型。
6。測試執行。
遇到的問題
識別影象所顯現的三維模型一直處於圖片的中心位置,在Unity中調整模型的位置也無改變。
解決辦法:增加一個Plane用來對照要識別的影象,將模型放置在想要顯示的位置,把模型設為Plane的子物體,將Plane作為新的預製體,新增到AR Session Origin下的AR Tracked Image Manager元件的Tracked Image Prefab中。
注:所新增的Plane不能設定為固定大小,隨著所識別影象的大小變化,Plane也應該變化,下面的一行程式碼為追蹤識別影象尺寸的語句。
這裡還有一個額外的注意點:
由於指令碼是透過控制父物體去適應識別影象的大小,從而改變父物體下子物體的大小,所以在加入子物體之前,務必要調整好父物體的比例,這樣最後的子物體顯示效果比例才正確。
VRARMR交流群:695965244