?
實(shí)現(xiàn)功能:用手機(jī)掃描一個(gè)圖片,然后會(huì)出現(xiàn)一個(gè)AR物體,當(dāng)然這物體是你自己設(shè)置的模型。
首先說(shuō)如何制作一個(gè)AR的APP需要準(zhǔn)備什么,easy ar這個(gè)插件,我用的版本是2.2.0的;unity我用的是unity2018.2.3的;
?
在做項(xiàng)目之前,要去easyar的官網(wǎng)注冊(cè)一個(gè)賬號(hào),之后去開(kāi)發(fā)中心,添加一個(gè)SDK的key,會(huì)自動(dòng)獲取到一個(gè)sdk的license key。這個(gè)很重要,之后會(huì)用到的。
?
?
當(dāng)然這個(gè)名字是有講究的,和unity打包時(shí)候那里的公司名字一樣,如上圖中
?
?
然后就打開(kāi)untiy導(dǎo)入easy ar的插件進(jìn)去,從prefabs里找到EasyAR_Startup和ImageTarget兩個(gè)物體然后拖進(jìn)場(chǎng)景里。
?
同時(shí)把你要掃描的圖片放到一個(gè)名為:StreamingAssets的文件夾里,如果沒(méi)有這個(gè)文件夾就新建一個(gè)。注意:文件夾名字必須是StreamingAssets
?
我在這里放了很多圖片,本案例只用名為zl的圖片做例子,如圖:
?
?
在EasyAR_Startup的屬性里把剛在官網(wǎng)里申請(qǐng)到的key復(fù)制過(guò)來(lái),放到key的里面。如下圖:
?
?
在ImageTarget的下面放一個(gè)物體(這個(gè)物體就是你掃描圖片要顯示的物體,作為ImageTarget的子物體),本案例里放了一個(gè)球體。
?
默認(rèn)拖到場(chǎng)景里的ImageTarget在Scene里是看不到東西,我們可以給它加一個(gè)材質(zhì)球,假如我這里新建的叫mat的材質(zhì)球,材質(zhì)球用的就是即將掃描的那張名為“zl的”圖。。。然后賦值給它,如圖:
?
?
默認(rèn)的ImageTarget自己帶的腳本是ImageTargetBehaviour。當(dāng)我們調(diào)整ImageTargetBehaviour里的size這個(gè)參數(shù)時(shí)(例如大小設(shè)置為3),我們就會(huì)在Scene場(chǎng)景中看到圖片了。如圖:
?
?
繼續(xù)配置ImageTargetBehaviour里的參數(shù)
?
path 需要把StreamingAssets路徑下的那張圖片的全名寫上包括圖片格式,例如本案例的zl.png
?
Name 就是該路徑下這個(gè)圖片的名字
?
Storage 選擇為Assets
?
loader這個(gè)地方去選擇場(chǎng)景里的EasyAR_Startup這個(gè)物體下的名為ImageTracker的子物體。
?
上述步驟,如下圖:
?
?
至此所有的開(kāi)發(fā)內(nèi)容完成,接下來(lái)就是打包的配置了,在playersetting里面的公司名字這里寫上我們最開(kāi)始在easy ar的官網(wǎng)設(shè)置的項(xiàng)目的名字。如圖:
?
?
之后就是普通的安卓打包過(guò)程了,這里不再贅述。然后安裝后,記得給app訪問(wèn)攝像頭的權(quán)限,然后進(jìn)入app用手機(jī)掃描你設(shè)定的圖片就會(huì)看到你想顯示的東西。例如案例里的掃描zl那張圖就會(huì)有一個(gè)球體出現(xiàn)在畫面里。
?
注意:顯示的物體不要太大而把圖片給遮擋的太多了。遮擋多了就采集不到圖片的信息了。合理調(diào)整圖片和模型的比例以及位置。