濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > 如何在Unity中使用VR暴風(fēng)魔鏡藍(lán)牙手柄

如何在Unity中使用VR暴風(fēng)魔鏡藍(lán)牙手柄

熱門標(biāo)簽:外呼系統(tǒng)怎么群發(fā)短信 400電話申請(qǐng)到底哪家好 谷歌地圖標(biāo)注日期 400電話辦理費(fèi)用低 地圖標(biāo)注項(xiàng)目幾個(gè)月 宿遷怎么辦理400電話 蘇州呼叫中心外呼系統(tǒng)哪家強(qiáng) 鶴壁高頻外呼系統(tǒng)多少錢一個(gè)月 聯(lián)通外呼系統(tǒng)電腦app軟件

一、藍(lán)牙手柄按鍵的響應(yīng)

在暴風(fēng)魔鏡的官網(wǎng)下載了最新的SDK后導(dǎo)入U(xiǎn)nity項(xiàng)目,發(fā)現(xiàn)SDK中的DEMO全部是非手柄控制的,然后只能參照著SDK里面的接口說明文檔自己研究~~結(jié)果發(fā)現(xiàn)接口文檔非一般的坑,一開始是直接在MojingInputManager.cs里面直接填充,直到最后才發(fā)現(xiàn)用IntegrateInputManager.prefab替換場(chǎng)景中原有的MojingInputManager.prefab以后就可以跟檢測(cè)Unity的輸入一樣檢測(cè)到手柄的輸入了,以下為源碼(詳情可直接參考接口文檔3.9節(jié)):

 //搖桿上移
        if (CrossPlatformInputManager.GetButtonDown("UP"))          
	    {
	        Debug.LogWarning("Up_Get");
            up = 1;
	    }
        //搖桿下移
        if (CrossPlatformInputManager.GetButtonDown("DOWN"))
        {
            Debug.LogWarning("Down_Get");
            up = -1;
        }
        //搖桿右移
        if (CrossPlatformInputManager.GetButtonDown("RIGHT"))
        {
            Debug.LogWarning("Right_Get");
            right = 1;
        }
        //搖桿左移
        if (CrossPlatformInputManager.GetButtonDown("LEFT"))
        {
            Debug.LogWarning("Left_Get");
            right = -1;
        }
        //搖桿回到中間位置
        if (CrossPlatformInputManager.GetButton("CENTER"))
        {
            Debug.LogWarning("CENTER_Get");
            up = 0;
            right = 0;
        }
        //按下確定(OK)鍵
        if (CrossPlatformInputManager.GetButtonDown("OK"))
        {
            Debug.LogWarning("OK_Get");
        }
        //按下取消鍵
        if (CrossPlatformInputManager.GetButtonDown("C"))
        {
            Debug.LogWarning("Cancle_Get");
        }
        //按下菜單鍵
        if (CrossPlatformInputManager.GetButtonDown("MENU"))
        {
            Debug.LogWarning("MENU_Get");
        }

二、UGUI的事件檢測(cè)

VR項(xiàng)目中最坑的地方就是原有的UI都不再適應(yīng),雖說很多SDK的官方都說只要把UI設(shè)置成世界坐標(biāo)即可,但是原有的UI都是跟隨視角移動(dòng)的,改成世界坐標(biāo)后要多奇怪有多奇怪,所以為了更加的和諧,還是針對(duì)VR設(shè)計(jì)一套UI比較好~(以上僅代表個(gè)人觀點(diǎn),不喜勿噴~ )。 OK,現(xiàn)在假設(shè)已經(jīng)準(zhǔn)備好UI的素材了,那么開始搞起~假設(shè)沒有什么其他的特殊要求,在加入Canvas后在屬性面板修改如下兩個(gè)參數(shù)即可 

第一個(gè)Render Mode就是渲染模式了~將其改為World Space,第二個(gè)Event Camera為事件響應(yīng)的攝像機(jī),在沒有手動(dòng)添加攝像機(jī)的情況下,場(chǎng)景中應(yīng)該會(huì)有如下三個(gè)攝像機(jī): 

VR模式效果如下 

在停用左右眼攝像機(jī),只打開主攝像機(jī)時(shí)效果如下
主攝像機(jī)在非VR模式時(shí)會(huì)打開,在VR模式下默認(rèn)關(guān)閉。Canvas里面響應(yīng)的攝像機(jī)就選擇主攝像機(jī)即可(如果沒有跟UI之間的交互此處也可不必設(shè)置),如此這般就可以在VR場(chǎng)景中看到Canvas里面的UI了。
若需求里面有跟UI之間的交互(比如點(diǎn)擊按鈕等等),那么Canvas的Event Camera必須設(shè)置,然后在EventSystem上面掛載SDK里面的GazeInputModule腳本如下圖所示 

其中Cursor里面的物體是剛剛和那三個(gè)鏡頭廝混在一起的準(zhǔn)星,觸發(fā)操作全靠它了~ 如果僅僅是這樣還是不行的~做到這一步在準(zhǔn)星移動(dòng)到BUTTON上面的時(shí)候只有懸浮效果(即高亮),點(diǎn)擊遙控器的OK鍵的時(shí)候是沒有任何響應(yīng)的(本想?yún)⒖脊俜紻EMO找到應(yīng)對(duì)方法的···結(jié)果DEMO全部不是手柄控制的,所以只能自己想辦法解決了o(╯□╰)o),在嘗試了多種方法之后,最終找到的可行方法是~~修改GazeInputModule腳本,將它的點(diǎn)擊檢測(cè)里面加上CrossPlatformInputManager.GetButtonDown("OK")就OK啦~

以上就是如何在Unity中使用暴風(fēng)魔鏡藍(lán)牙手柄的詳細(xì)內(nèi)容,更多關(guān)于在Unity中使用暴風(fēng)魔鏡藍(lán)牙手柄的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • Unity實(shí)現(xiàn)VR中在黑板上寫字效果
  • Unity3D基于陀螺儀實(shí)現(xiàn)VR相機(jī)功能

標(biāo)簽:錫林郭勒盟 鄂爾多斯 襄陽 遵義 莆田 雙鴨山 哈爾濱 丹東

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《如何在Unity中使用VR暴風(fēng)魔鏡藍(lán)牙手柄》,本文關(guān)鍵詞  如,何在,Unity,中,使用,暴風(fēng),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《如何在Unity中使用VR暴風(fēng)魔鏡藍(lán)牙手柄》相關(guān)的同類信息!
  • 本頁收集關(guān)于如何在Unity中使用VR暴風(fēng)魔鏡藍(lán)牙手柄的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    永胜县| 顺平县| 皮山县| 凌海市| 武清区| 巴里| 抚顺县| 章丘市| 喀什市| 尤溪县| 神木县| 五大连池市| 永清县| 宜州市| 望都县| 衡阳县| 麟游县| 鄂托克旗| 民勤县| 武乡县| 贵德县| 盘山县| 泗洪县| 丹东市| 循化| 安阳县| 寻乌县| 洛阳市| 同江市| 丰原市| 沾益县| 荔波县| 江山市| 银川市| 浠水县| 永靖县| 钟祥市| 师宗县| 高邑县| 海伦市| 五指山市|