ChinaJoy 2017 | 使用Unity開發坦克AR詳解
在ChinaJoy 2017的Unity展位上,5分鐘使用Unity制作AR項目吸引了很多策劃、美術以及從未接觸過AR開發的程序員們,于現場感受了Unity結合Vuforia的開發魅力。今天這篇文章將為大家分享Unity展位坦克AR項目的詳細開發過程。
請注意,本文需要您具備基本的Unity知識,了解Unity腳本、組件、檢視窗口、層級窗口等內容。請點擊【閱讀原文】下載本文所需的資源文件。
構建場景
在Unity中新建場景,刪除Directional Light組件。然后將Project > Prefabs下的Sandbox對象拖拽至層級窗口,Sandbox對象本身帶有光照組件。確保在檢視窗口中將Sanbox > Ground > GroundPlane的Layer設置為Ground。
<center style="max-width: 100%;"></center>
依次點擊Windo > Lighting > Settings打開光照設置界面,取消勾選實時GI、烘焙GI以及Auto Generate。
<center style="max-width: 100%;"></center>
在Edit > Project ettings > Quality中將Shadow Distance設為300,以便沙盤陰影更加明顯。
<center style="max-width: 100%;"></center>
加入AR
從Vuforia官網下載最新的vuforia-unity-6-2-10.unitypackage插件并導入項目,將Vuforia > Prefabs文件夾下的ARCamera預制件拖拽至層級視圖,點擊設置在Vuforia官網申請的License Key。如果不了解此處的步驟,請查閱《5分鐘使用Unity制作AR應用》。
<center style="max-width: 100%;"></center>
將Vuforia > Prefabs文件夾下的ImageTarget預制件拖拽至層級窗口,添加圖像識別目標。將在Vuforia官網創建的目標數據庫下載后導入Unity,在檢視窗口中設置該ImageTarget的數據庫。
<center style="max-width: 100%;"></center>
再次打開ARCamera的配置,勾選Load Database與Active,以加載數據庫文件。
<center style="max-width: 100%;"></center>
將場景中的Sandbox拖拽至ImageTarget下方成為其子對象,將Sandbox稍微向上移動,位于ImageTarget上方。選中Sandbox后將其設為靜態對象,打開Window > Navigation > Bake, 將Agent Radius的值設為1.4,將Max Slope設為20,以避免角落部分生成Navmesh,設置完畢后點擊Bake烘焙網格。
<center style="max-width: 100%;"></center>
添加菜單
在層級窗口新建GameObject命名為Placement Manager,將Prefabs > VFX文件夾下的Arrows預制件拖拽至其下方作為子對象,將Scripts文件夾下的PlacementManager腳本綁定到Placement Manager游戲對象。該腳本用于將玩家在菜單選中的可放置對象擺放到沙盤。將腳本的Main Camera屬性設為ARCamera下的相機,What is Ground屬性設為Ground,Sandbox設為層級窗口的Sandbox。
<center style="max-width: 100%;"></center>
將Prefabs > UI文件夾下的HUD拖拽至層級窗口,選中子對象Left Column 與Right Colum下方的所有圖片,在檢視窗口中為所有圖片添加Selection Image腳本,然后單獨為各腳本的Selectable Prefab屬性設置對應的預制件。
<center style="max-width: 100%;"></center>
添加多個目標識別
可以在場景中添加多個ImageTarget來實現多目標識別,再次拖拽ImageTarget預制件至層級窗口,為其設置數據庫文件,并選擇其它的識別圖像。根據需求設置識別圖像的寬高,這里均為75。
<center style="max-width: 100%;"></center>
為新的ImageTarget添加新的目標對象,根據需求設置目標對象的縮放。這里選擇將Building1拖拽至新ImageTarget下方。打開ARCamera配置文件,將Max Simultaneous Trakced Images屬性設為2,并將World Cnter Mode改為SPECIFIC_TARGET。這樣就可以同時追蹤2個識別圖像。
<center style="max-width: 100%;"></center>
到此我們為時5分鐘的坦克AR項目就完成了,最后運行效果如下:
<center style="max-width: 100%;"></center>
結語
使用Unity與Vuforia SDK開發AR應用并不復雜,即便從未接觸過的初學者也能在短時間內快速上手,大家可以訪問Unity官方中文社區(unitychina.cn)獲取坦克AR項目資源,自己動手實現掌中坦克。
5分鐘使用Unity制作AR應用
Unity內置Vuforia,助力開發AR應用
Unity結合Vuforia開發AR應用如何識別各種目標?
Unity發布實驗預覽版,支持為macOS開發VR及AR內容
使用Unity開發AR游戲《AR Dragons》經驗分享