国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Unity5+Vuforia實現一個AR小Demo (2)

2019-11-06 09:33:27
字體:
來源:轉載
供稿:網友

前言

上學期擔任了導師一門選修課的TA,課程是關于VR和AR的,所以就設計了一個簡單的AR小Demo實驗,其實都是網絡上用Unity+Vuforia做的AR效果,這里只是整理歸納一下步驟而已,分為兩部分,第一部分是顯示模型,第二部分是對模型進行簡單操作。由于這個實驗操作說明是面向沒有接觸過Unity和Vuforia的同學,所以會特別詳細(啰嗦)。第一部分的內容請看Unity5+Vuforia實現一個AR小Demo(1)。下面開始第二部分的講述。

效果

能夠對顯示的模型進行交互。

步驟

17.在Hierarchy視圖中選中ImageTarget,在Inspector視圖中找到Default Trackable Event Handler腳本,在名字上右鍵,選擇Edit Script打開了編輯界面。 17_1 首先解釋一下這個腳本,這個腳本是程序用來檢測攝像頭視野范圍內是否追蹤到識別圖。

17_2 Start函數是Unity的固定函數,只在程序開始時執行一次,所以在這里進行的一般是變量的初始化。 另外還有一個Update函數,也是固定函數,會在每一幀被調用,我們對模型的操作會在Update這個函數里進行。

17_3 OnTrackableStateChanged函數是在追蹤狀態發生改變時執行相應的操作,在追蹤到識別圖,就會進入if語句,調用OnTrackingFound函數把模型繪制出來。在追蹤不到識別圖時就會進入else語句,調用OnTrackingLost函數取消模型的顯示。

18.開始我們的編程,放心,代碼量不大,而且邏輯很容易。首先設置幾個變量: 18 chopper是一個GameObject類型變量,用來表示程序中的一個對象 originScale和newScale都是Vector3類型,有三個分量x,y,z,用來表示三個方向的縮放因子 isTracked是一個bool變量,用來表示識別圖是否被追蹤到。

19.在Start函數中初始化變量: 19_1 GameObject.Find是用來找到我們的目標對象,參數是對象的名字,我們的目標對象就是模型,所以是模型的名字,這個名字可以在Hierarchy中看到 19_2 獲取模型后,把模型的原始縮放因子存儲起來,其中chopper.transform就是指下圖這個組件 19_3 它包含著position(位置信息),rotation(旋轉信息),scale(縮放信息),所以我們通過chopper.transform.localScale得到表示模型縮放因子的3維向量,值是[0.04,0.04, 0.04]。 最后初始追蹤狀態isTracked設為false表示沒有追蹤到。

20.更新追蹤的狀態,直接利用現有的OnTrackableStateChanged函數,在對應情況下設置isTracked的值。 20

21.最后編寫Update函數,根據追蹤的狀態和鼠標事件更新模型。 21_1 在Start函數下面添加一個Update函數。 當追蹤到了識別圖,利用Input.GetMouseButtonDown函數監聽鼠標的點擊事件,參數0表示鼠標左鍵,如果點擊了鼠標左鍵,那么Input.GetMouseButtonDown(0)就會返回true,這時如果新的縮放因子newScale不小于0.01(避免過度縮小),我們減小newScale,然后讓模型的縮放因子等于newScale,這就實現了縮小模型。 當追蹤不到識別圖,要把模型的縮放因子重置為原始的縮放因子,不然下次顯示時仍是縮小后的模型。 最終的效果如下: 21_2 21_3

得到上面的結果就完成了第二部分對模型進行簡單操作。以上演示的是PC端的,因為Vuforia是移動端的一個SDK,所以發布成PC端的程序會無法運行。如果是做APP的話,那就得配置好JDK跟Android SDK,交互方式也會不一樣,因為移動端沒有鍵盤和鼠標,所以需要其他的交互方式,比如監聽觸摸事件或是額外添加按鈕等UI元素,這些內容可以在網上搜到很多資料,就不詳細描述。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南康市| 社会| 栖霞市| 溧阳市| 克拉玛依市| 镇宁| 扎囊县| 宜黄县| 钟祥市| 资中县| 常熟市| 务川| 安塞县| 中山市| 英吉沙县| 孝感市| 永定县| 南岸区| 新疆| 文化| 满城县| 永宁县| 阳原县| 成都市| 新泰市| 涪陵区| 石阡县| 聂荣县| 开远市| 西昌市| 越西县| 阿拉善左旗| 葫芦岛市| 道真| 星子县| 呼和浩特市| 嘉峪关市| 平山县| 富锦市| 友谊县| 华容县|