Unity開(kāi)發(fā)VR項(xiàng)目問(wèn)題總結(jié)分析
一、StreamVR問(wèn)題:
1.運(yùn)行項(xiàng)目時(shí)不顯示手柄控制器:
出現(xiàn)這種情況一般會(huì)在頭顯中提示不能加載按鍵配置文件,出現(xiàn)這種提示時(shí)請(qǐng)直接打開(kāi)steam(注意不是steamVR哈),按照我的了解應(yīng)該是按鍵配置文件是存儲(chǔ)在Steam上面的,不過(guò)項(xiàng)目發(fā)布以后就不會(huì)出現(xiàn)這種問(wèn)題了。
2.按鍵動(dòng)作檢測(cè)出現(xiàn)重復(fù)問(wèn)題:
出現(xiàn)這種問(wèn)題應(yīng)該是現(xiàn)在的插件本身的問(wèn)題,比如檢測(cè)按鍵抬起或者按鍵按下經(jīng)常會(huì)出現(xiàn)觸發(fā)兩次的情況,目前的解決方案是設(shè)置一個(gè)Bool值,按下的時(shí)候設(shè)為true,抬起的時(shí)候設(shè)為false
if (TrigerAction.GetStateDown(SteamVR_Input_Sources.RightHand)) { if (!rightTriger) { rightTriger = true; } } if (TrigerAction.GetStateUp(SteamVR_Input_Sources.RightHand)) { if (rightTriger) { rightTriger = false; } }
3.Error during OpenVR Init: Init_InterfaceNotFound:
這個(gè)問(wèn)題應(yīng)該是SteamVR與OpenCV(1.0.0版)的兼容問(wèn)題,直接通過(guò)Steam更新SteamVR(我這邊是更新到1.15.19),之后就沒(méi)有這個(gè)問(wèn)題了~
4.[SteamVR] Interface Not Found (105):
這個(gè)問(wèn)題還是SteamVR版本的問(wèn)題,最少SteamVR1.15.19是有此問(wèn)題的,出現(xiàn)這個(gè)問(wèn)題的時(shí)候手柄是顯示不出來(lái)的
http://steamcommunity.com/app/250820/discussions/0/133259227526422836/
可以更新到beta版解決此問(wèn)題,更新方法如下,目前更新到1.16.4版就解決了這個(gè)問(wèn)題:
5.更新SteamVR時(shí)如果之前不小心刪除了SteamVR的本地文件
執(zhí)行“運(yùn)行”或“更新”時(shí)就會(huì)出現(xiàn)錯(cuò)誤,這是可以通過(guò)下面的步驟重新安裝SteamVR:
二、Unity問(wèn)題:
1.檢測(cè)射線是否在UI之上(用于避免模型與UI互相干擾)
注意此方法用在FixedUpdate中比較靠譜,若在Update中檢測(cè)在webgl平臺(tái)時(shí)不能及時(shí)檢測(cè)到:
void FixedUpdate() { //射線處在UI之上 #if !(UNITY_EDITOR||UNITY_STANDALONE ) if (Input.touchCount <= 0) return; #endif #if !(UNITY_EDITOR||UNITY_STANDALONE ) if (EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId)) #else if (EventSystem.current.IsPointerOverGameObject()) #endif return; //射線不處于UI上時(shí)觸發(fā)下方功能 ··· }
2.VS2019調(diào)試unity項(xiàng)目:
在頂部菜單欄中“調(diào)試”->“附加到Unity調(diào)試程序”
3.Unity 加載項(xiàng)目時(shí)出現(xiàn)“package manager error”:
- ①可以關(guān)閉防火墻(設(shè)置白名單是沒(méi)用的)之后重啟電腦便可解決,等打開(kāi)unity項(xiàng)目后可以再打開(kāi)防火墻。
- ②可以斷開(kāi)網(wǎng)絡(luò),重啟電腦后在離線模式下打開(kāi)unity,之后再連接網(wǎng)絡(luò)。
4.燈光烘焙?jiǎn)栴}:
①Directional 直射光也是可以用于烘焙的,但是屬于全局光,如果用于室內(nèi)烘焙會(huì)被房間的墻壁遮擋,因此烘焙出來(lái)的室內(nèi)雖然也會(huì)有一定的亮度,但是關(guān)閉實(shí)時(shí)光照后處于室內(nèi)的可移動(dòng)物品就全部變?yōu)楹谏o(wú)光狀態(tài))。
②室內(nèi)盡量使用點(diǎn)光源(PointLight)或者聚光燈光源(SpotLight)來(lái)進(jìn)行烘焙,可以烘焙的亮一些,然后通過(guò)調(diào)整貼圖的亮度來(lái)控制光線的亮度。
5.物體旋轉(zhuǎn)問(wèn)題:
通過(guò)eulerAngles進(jìn)行物體旋轉(zhuǎn)的時(shí)候會(huì)出現(xiàn)萬(wàn)向鎖的情況,但是直接用Quaternion計(jì)算坐標(biāo)又很麻煩,可以通過(guò)Quaternion.Euler()方法將eulerAngles轉(zhuǎn)換為Quaternion來(lái)解決此問(wèn)題
Quaternion _angle = Quaternion.Euler(new Vector3(0,45,0)); transform.rotation = _angle;
6.UGUI中無(wú)法觸發(fā)事件(比如Button的點(diǎn)擊)問(wèn)題:
注意一下此UI控件所在Canvas中的EventCamera是否為空,因?yàn)槭录挠|發(fā)是基于攝像機(jī)發(fā)出的射線,若不為空此Canvas下面的所有UI控件的事件觸發(fā)都會(huì)基于此攝像機(jī),將此值設(shè)為空后將會(huì)默認(rèn)由主攝像機(jī)(MainCamera)觸發(fā)事件。
相關(guān)文章
WebSocket部署到服務(wù)器出現(xiàn)連接失敗問(wèn)題的分析與解決
這篇文章主要給大家介紹了關(guān)于WebSocket部署到服務(wù)器出現(xiàn)連接失敗問(wèn)題的分析與解決方法,文中給出了詳細(xì)的介紹供大家參考學(xué)習(xí),文末也給出了demo下載地址,需要的朋友們可以下載學(xué)習(xí),下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10在IDEA中配置SFTP遠(yuǎn)程Linux服務(wù)器系統(tǒng)的實(shí)現(xiàn)
本文主要介紹了在IDEA中配置SFTP遠(yuǎn)程Linux服務(wù)器系統(tǒng)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12Unity通過(guò)BlendShape實(shí)現(xiàn)面部表情過(guò)渡切換Animation教程
眼睛慢慢瞇成一條線的人都是實(shí)力很強(qiáng)勁的,教你在Unity中通過(guò)BlendShape來(lái)實(shí)現(xiàn)角色面部表情過(guò)渡切換Animation,有需要的朋友可以借鑒參考下2021-09-09VScode敲代碼時(shí)自動(dòng)導(dǎo)入包的解決方案
這篇文章主要介紹了VScode敲代碼時(shí)自動(dòng)導(dǎo)入包的解決方案,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vscode具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09