海寧公司做網(wǎng)站營銷策略國內(nèi)外文獻綜述
專欄
本專欄將介紹如何使用這個支持熱更的AR開發(fā)插件,快速地開發(fā)AR應(yīng)用。
鏈接: Unity開發(fā)AR系列
插件簡介
通過熱更技術(shù)實現(xiàn)動態(tài)地加載AR場景,簡化了AR開發(fā)流程,讓用戶可更多地關(guān)注Unity場景內(nèi)容的制作。
“EnvInstaller…”支持HybridCLR和ARCore的一鍵安裝。
“AR SDK…”基于HybridCLR和ARFoundation實現(xiàn),使熱更技術(shù)貫穿AR開發(fā)的全流程。
包含熱更數(shù)據(jù)制作與導(dǎo)出、熱更數(shù)據(jù)上傳與下載、熱更數(shù)據(jù)的版本控制與數(shù)據(jù)加載
資源下載
“EnvInstaller”:點擊下載
“AR SDK”:點擊下載
制作熱更數(shù)據(jù)-AR圖片識別場景
在前面的《使用插件一鍵安裝》已介紹如何使用插件導(dǎo)入ARFoundation(ARCore)和HybridCLR的相關(guān)Package,這里僅介紹必須修改的設(shè)置。
導(dǎo)入AR SDK
-
通過“Assets -> Import Package -> Custom Package…”的方式導(dǎo)入 “AR SDK_v1.0.1.x.unitypackage”。導(dǎo)入成功后,菜單欄出現(xiàn)“Holo-XR”欄目。
-
點擊“Holo-XR > Settings”,打開設(shè)置窗口。
-
(必需)勾選“熱更新”啟用SDK中涉及HybridCLR的腳本。
-
(必需)勾選“ARCore”,啟用ARFoundation。(此處由于通過EnvInstaller安裝的是ARCore,因此這里選用ARCore。目前也支持啟用其它平臺,將在后續(xù)文檔中講述。)
-
(可選)勾選“調(diào)試模式”和“打印日志”(勾選后,使用“EqLog.log(…)”)
-
使用ARFoundation
- 導(dǎo)入 “AR Foundation”和“ARCore Extensions for AR Foundation ”。
建議使用《使用插件一鍵安裝》介紹的插件一鍵導(dǎo)入 ARCore的所有依賴。
此外,也可參考官方文檔《AR Foundation 使用入門》按照步驟逐步導(dǎo)入。
- 轉(zhuǎn)到 File > Build Settings 以打開 Build Settings 窗口,點擊 Player Settings,修改3處地方。
Player Settings > … | 值 |
---|---|
Other Settings > Rendering | 取消選中 Auto Graphics API。 如果 Vulkan 列在 Graphics APIs 下,請將其移除,因為 ARCore 尚不支持 Vulkan。 |
Other Settings > Minimum API Level | 這里要構(gòu)建 AR 必備應(yīng)用,請指定 Android 7.0 ‘Nougat’ (API Level 24) or higher |
Other Settings > Scripting Backend | 選擇 IL2CPP(而非 Mono),Level切換為 .NET Framework(而非**.Net Standard 2.x**)。(注意:Unity 2020及其以下版本,切換為.NET 4.x) |
示意圖如下:
- 轉(zhuǎn)到 Edit > Project Settings 以打開 Project Settings 窗口,點擊XR Plug-in Management,啟用ARCore。

- 轉(zhuǎn)到ARCore,修改為深度可選的AR必備應(yīng)用。

制作數(shù)據(jù)
示例:實現(xiàn)識別不同圖片加載不同的模型
添加組件
在“ARCore Session”對象上添加組件“ARCoreImageDetect”,如下圖所示。
在“ARCoreImageDetect”中的“Images”下所添加的就是用于識別的圖像和識別到圖像后加載的Prefab
在“ARCoreImageDetect”中的“DetectCallback”即是事件回調(diào)(見下節(jié)描述)。
事件回調(diào)
有時我們需要監(jiān)聽什么時候識別到圖片,什么時候圖片失去跟蹤狀態(tài)等信息。
可通過重寫"DetectCallback"類
public class DetectCallback : MonoBehaviour{public virtual void OnAdded(ARImageInfo image) { }public virtual void OnUpdate(ARImageInfo image) { }public virtual void OnRemoved(ARImageInfo image) { }}
示例如下:
public override void OnUpdate(ARImageInfo image){EqLog.i("DetectMethod", "image.name:" + image.name+ ";image.position:" + image.transform.position);}public override void OnAdded(ARImageInfo image){EqLog.i("DetectMethod", "image.name:" + image.name+ ";image.position:" + image.transform.position);AndroidUtils.Toast("image.name:" + image.name+ ";image.position:" + image.transform.position);}public void LoadCompleted(){AndroidUtils.Toast("圖片數(shù)據(jù)庫加載完成");}
場景導(dǎo)出
- 執(zhí)行菜單欄“Holo-XR”->“BuildBundle-Android”,指定入口場景后,點擊”導(dǎo)出“
- 場景打包的結(jié)果為zip包和version文件
至此熱更數(shù)據(jù)已制作完成,后續(xù)將介紹如何在程序中調(diào)用熱更數(shù)據(jù)。