如何用Unity制作AR程序?

Jyadmin 提交于 周六, 10/08/2022 - 13:18

?

實(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ì)用到的。

?

如何用Unity制作AR程序

?

當(dāng)然這個(gè)名字是有講究的,和unity打包時(shí)候那里的公司名字一樣,如上圖中

?

用Unity制作AR應(yīng)用用Unity制作AR應(yīng)用

?

然后就打開(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的圖片做例子,如圖:

?

用Unity制作AR應(yīng)用

?

在EasyAR_Startup的屬性里把剛在官網(wǎng)里申請(qǐng)到的key復(fù)制過(guò)來(lái),放到key的里面。如下圖:

?

用Unity制作AR應(yīng)用

?

在ImageTarget的下面放一個(gè)物體(這個(gè)物體就是你掃描圖片要顯示的物體,作為ImageTarget的子物體),本案例里放了一個(gè)球體。

?

默認(rèn)拖到場(chǎng)景里的ImageTarget在Scene里是看不到東西,我們可以給它加一個(gè)材質(zhì)球,假如我這里新建的叫mat的材質(zhì)球,材質(zhì)球用的就是即將掃描的那張名為“zl的”圖。。。然后賦值給它,如圖:

?

用Unity制作AR應(yīng)用

?

默認(rèn)的ImageTarget自己帶的腳本是ImageTargetBehaviour。當(dāng)我們調(diào)整ImageTargetBehaviour里的size這個(gè)參數(shù)時(shí)(例如大小設(shè)置為3),我們就會(huì)在Scene場(chǎng)景中看到圖片了。如圖:

?

用Unity制作AR應(yīng)用

?

繼續(xù)配置ImageTargetBehaviour里的參數(shù)

?

path 需要把StreamingAssets路徑下的那張圖片的全名寫上包括圖片格式,例如本案例的zl.png

?

Name 就是該路徑下這個(gè)圖片的名字

?

Storage 選擇為Assets

?

loader這個(gè)地方去選擇場(chǎng)景里的EasyAR_Startup這個(gè)物體下的名為ImageTracker的子物體。

?

上述步驟,如下圖:

?

用Unity制作AR應(yīng)用用Unity制作AR應(yīng)用用Unity制作AR應(yīng)用

?

至此所有的開(kāi)發(fā)內(nèi)容完成,接下來(lái)就是打包的配置了,在playersetting里面的公司名字這里寫上我們最開(kāi)始在easy ar的官網(wǎng)設(shè)置的項(xiàng)目的名字。如圖:

?

用Unity制作AR應(yīng)用
用Unity制作AR應(yīng)用

?

之后就是普通的安卓打包過(guò)程了,這里不再贅述。然后安裝后,記得給app訪問(wèn)攝像頭的權(quán)限,然后進(jìn)入app用手機(jī)掃描你設(shè)定的圖片就會(huì)看到你想顯示的東西。例如案例里的掃描zl那張圖就會(huì)有一個(gè)球體出現(xiàn)在畫面里。

?

注意:顯示的物體不要太大而把圖片給遮擋的太多了。遮擋多了就采集不到圖片的信息了。合理調(diào)整圖片和模型的比例以及位置。