ChinaJoy 2017 | 使用Unity開發(fā)坦克AR詳解
在ChinaJoy 2017的Unity展位上,5分鐘使用Unity制作AR項(xiàng)目吸引了很多策劃匣吊、美術(shù)以及從未接觸過AR開發(fā)的程序員們膝捞,于現(xiàn)場感受了Unity結(jié)合Vuforia的開發(fā)魅力食磕。今天這篇文章將為大家分享Unity展位坦克AR項(xiàng)目的詳細(xì)開發(fā)過程及皂。
請注意薪寓,本文需要您具備基本的Unity知識,了解Unity腳本炮赦、組件怜跑、檢視窗口、層級窗口等內(nèi)容吠勘。請點(diǎn)擊【閱讀原文】下載本文所需的資源文件性芬。
構(gòu)建場景
在Unity中新建場景,刪除Directional Light組件剧防。然后將Project > Prefabs下的Sandbox對象拖拽至層級窗口植锉,Sandbox對象本身帶有光照組件。確保在檢視窗口中將Sanbox > Ground > GroundPlane的Layer設(shè)置為Ground诵姜。
<center style="max-width: 100%;"></center>
依次點(diǎn)擊Windo > Lighting > Settings打開光照設(shè)置界面汽煮,取消勾選實(shí)時GI、烘焙GI以及Auto Generate棚唆。
<center style="max-width: 100%;"></center>
在Edit > Project ettings > Quality中將Shadow Distance設(shè)為300暇赤,以便沙盤陰影更加明顯。
<center style="max-width: 100%;"></center>
加入AR
從Vuforia官網(wǎng)下載最新的vuforia-unity-6-2-10.unitypackage插件并導(dǎo)入項(xiàng)目宵凌,將Vuforia > Prefabs文件夾下的ARCamera預(yù)制件拖拽至層級視圖鞋囊,點(diǎn)擊設(shè)置在Vuforia官網(wǎng)申請的License Key。如果不了解此處的步驟瞎惫,請查閱《5分鐘使用Unity制作AR應(yīng)用》溜腐。
<center style="max-width: 100%;"></center>
將Vuforia > Prefabs文件夾下的ImageTarget預(yù)制件拖拽至層級窗口,添加圖像識別目標(biāo)瓜喇。將在Vuforia官網(wǎng)創(chuàng)建的目標(biāo)數(shù)據(jù)庫下載后導(dǎo)入Unity挺益,在檢視窗口中設(shè)置該ImageTarget的數(shù)據(jù)庫。
<center style="max-width: 100%;"></center>
再次打開ARCamera的配置乘寒,勾選Load Database與Active望众,以加載數(shù)據(jù)庫文件。
<center style="max-width: 100%;"></center>
將場景中的Sandbox拖拽至ImageTarget下方成為其子對象,將Sandbox稍微向上移動烂翰,位于ImageTarget上方夯缺。選中Sandbox后將其設(shè)為靜態(tài)對象,打開Window > Navigation > Bake, 將Agent Radius的值設(shè)為1.4甘耿,將Max Slope設(shè)為20踊兜,以避免角落部分生成Navmesh,設(shè)置完畢后點(diǎn)擊Bake烘焙網(wǎng)格佳恬。
<center style="max-width: 100%;"></center>
添加菜單
在層級窗口新建GameObject命名為Placement Manager捏境,將Prefabs > VFX文件夾下的Arrows預(yù)制件拖拽至其下方作為子對象,將Scripts文件夾下的PlacementManager腳本綁定到Placement Manager游戲?qū)ο蠡俅小T撃_本用于將玩家在菜單選中的可放置對象擺放到沙盤典蝌。將腳本的Main Camera屬性設(shè)為ARCamera下的相機(jī),What is Ground屬性設(shè)為Ground头谜,Sandbox設(shè)為層級窗口的Sandbox。
<center style="max-width: 100%;"></center>
將Prefabs > UI文件夾下的HUD拖拽至層級窗口鸠澈,選中子對象Left Column 與Right Colum下方的所有圖片柱告,在檢視窗口中為所有圖片添加Selection Image腳本,然后單獨(dú)為各腳本的Selectable Prefab屬性設(shè)置對應(yīng)的預(yù)制件笑陈。
<center style="max-width: 100%;"></center>
添加多個目標(biāo)識別
可以在場景中添加多個ImageTarget來實(shí)現(xiàn)多目標(biāo)識別际度,再次拖拽ImageTarget預(yù)制件至層級窗口,為其設(shè)置數(shù)據(jù)庫文件涵妥,并選擇其它的識別圖像乖菱。根據(jù)需求設(shè)置識別圖像的寬高,這里均為75蓬网。
<center style="max-width: 100%;"></center>
為新的ImageTarget添加新的目標(biāo)對象窒所,根據(jù)需求設(shè)置目標(biāo)對象的縮放。這里選擇將Building1拖拽至新ImageTarget下方帆锋。打開ARCamera配置文件吵取,將Max Simultaneous Trakced Images屬性設(shè)為2,并將World Cnter Mode改為SPECIFIC_TARGET锯厢。這樣就可以同時追蹤2個識別圖像皮官。
<center style="max-width: 100%;"></center>
到此我們?yōu)闀r5分鐘的坦克AR項(xiàng)目就完成了,最后運(yùn)行效果如下:
<center style="max-width: 100%;"></center>
結(jié)語
使用Unity與Vuforia SDK開發(fā)AR應(yīng)用并不復(fù)雜实辑,即便從未接觸過的初學(xué)者也能在短時間內(nèi)快速上手捺氢,大家可以訪問Unity官方中文社區(qū)(unitychina.cn)獲取坦克AR項(xiàng)目資源,自己動手實(shí)現(xiàn)掌中坦克剪撬。
5分鐘使用Unity制作AR應(yīng)用
Unity內(nèi)置Vuforia摄乒,助力開發(fā)AR應(yīng)用
Unity結(jié)合Vuforia開發(fā)AR應(yīng)用如何識別各種目標(biāo)?
Unity發(fā)布實(shí)驗(yàn)預(yù)覽版,支持為macOS開發(fā)VR及AR內(nèi)容
使用Unity開發(fā)AR游戲《AR Dragons》經(jīng)驗(yàn)分享