AR技術應用 の 如何做一個Pokemon GO這隻皮卡丘是你的嗎?

已邀請:

周星馳微博

贊同來自:



火紅火熱的Pokemon GO在中國被鎖啦!


隻好自己動手做一個吧:)


思路:當鏡頭在向著地面的時候,開始尋找皮卡丘,一定時間之後皮卡丘根據角度出現在鏡頭裡。


使用引擎:Unity3D 語言:c# AR-SDK:vuforia


1.首先打開unity創建一個AR項目,使用的AR引擎是Vuforia。

官網使用教程:https://developer.vuforia.com/support

中文教程:http://www.manew.com/thread-92723-1-1.html?_dsign=51711fb9


2.導入vuforia包,把預設裡的ARCamera拉入場景中,把皮卡丘模型放在ARCamera下的Camera下面,以此跟蹤攝像頭。



Paste_Image.png


3.為瞭使皮卡丘真實的出現在“現實”中,我們要先確保其出現在地面,例如桌面、地上,而不是天花板。。所以我們用到手機陀螺儀功能,判斷角度是否向下。


①設置鏡頭跟隨螺旋儀旋轉



設置鏡頭跟隨設備陀螺儀


②在Update判斷ARCamera是否向下,即三維世界的0~60度內


void Update () {
if(camRotation.transform.eulerAngles.x > 0 && camRotation.transform.eulerAngles.x < 60)
{
Debug.Log("角度正確");
}
if(camRotation.transform.eulerAngles.x < 0 || camRotation.transform.eulerAngles.x > 60)
{
Debug.Log("角度不對");
}
}

4.然後要先隱藏皮卡丘,當其出現的時候,不是直接跟隨鏡頭,而是讓手機在旋轉的同時皮卡丘會被移出鏡頭范圍內。

①在皮卡丘出現的時候,使其脫離ARCamera,並顯示出來。

②當攝像頭向下的時候,旋轉皮卡丘一定角度,使其有看著玩傢的感覺。


    public GameObject camRotation;//ARCamera攝像頭角度

void 發現皮卡丘(){
gameObject.transform.parent = null;
gameObject.SetActive(true);
gameObject.transform.Rotate(new Vector3(camRotation.transform.eulerAngles.x + this.transform.eulerAngles.x ,this.transform.eulerAngles.y,this.transform.eulerAngles.z));
}


放上APK試玩:http://pan.baidu.com/s/1o84cEdO

------------End-----------

要回復問題請先登錄註冊