目錄
- 一、StreamVR問題:
- 1.運(yùn)行項目時不顯示手柄控制器:
- 2.按鍵動作檢測出現(xiàn)重復(fù)問題:
- 3.Error during OpenVR Init: Init_InterfaceNotFound:
- 4.[SteamVR] Interface Not Found (105):
- 5.更新SteamVR時如果之前不小心刪除了SteamVR的本地文件
- 二、Unity問題:
- 1.檢測射線是否在UI之上(用于避免模型與UI互相干擾)
- 2.VS2019調(diào)試unity項目:
- 3.Unity 加載項目時出現(xiàn)“package manager error”:
- 4.燈光烘焙問題:
- 5.物體旋轉(zhuǎn)問題:
- 6.UGUI中無法觸發(fā)事件(比如Button的點(diǎn)擊)問題:
一、StreamVR問題:
1.運(yùn)行項目時不顯示手柄控制器:
出現(xiàn)這種情況一般會在頭顯中提示不能加載按鍵配置文件,出現(xiàn)這種提示時請直接打開steam(注意不是steamVR哈),按照我的了解應(yīng)該是按鍵配置文件是存儲在Steam上面的,不過項目發(fā)布以后就不會出現(xiàn)這種問題了。
2.按鍵動作檢測出現(xiàn)重復(fù)問題:
出現(xiàn)這種問題應(yīng)該是現(xiàn)在的插件本身的問題,比如檢測按鍵抬起或者按鍵按下經(jīng)常會出現(xiàn)觸發(fā)兩次的情況,目前的解決方案是設(shè)置一個Bool值,按下的時候設(shè)為true,抬起的時候設(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:
這個問題應(yīng)該是SteamVR與OpenCV(1.0.0版)的兼容問題,直接通過Steam更新SteamVR(我這邊是更新到1.15.19),之后就沒有這個問題了~
4.[SteamVR] Interface Not Found (105):
這個問題還是SteamVR版本的問題,最少SteamVR1.15.19是有此問題的,出現(xiàn)這個問題的時候手柄是顯示不出來的
http://steamcommunity.com/app/250820/discussions/0/133259227526422836/


可以更新到beta版解決此問題,更新方法如下,目前更新到1.16.4版就解決了這個問題:


5.更新SteamVR時如果之前不小心刪除了SteamVR的本地文件
執(zhí)行“運(yùn)行”或“更新”時就會出現(xiàn)錯誤,這是可以通過下面的步驟重新安裝SteamVR:


二、Unity問題:
1.檢測射線是否在UI之上(用于避免模型與UI互相干擾)
注意此方法用在FixedUpdate中比較靠譜,若在Update中檢測在webgl平臺時不能及時檢測到:
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上時觸發(fā)下方功能
···
}
2.VS2019調(diào)試unity項目:
在頂部菜單欄中“調(diào)試”->“附加到Unity調(diào)試程序”

3.Unity 加載項目時出現(xiàn)“package manager error”:
- ①可以關(guān)閉防火墻(設(shè)置白名單是沒用的)之后重啟電腦便可解決,等打開unity項目后可以再打開防火墻。
- ②可以斷開網(wǎng)絡(luò),重啟電腦后在離線模式下打開unity,之后再連接網(wǎng)絡(luò)。
4.燈光烘焙問題:
①Directional 直射光也是可以用于烘焙的,但是屬于全局光,如果用于室內(nèi)烘焙會被房間的墻壁遮擋,因此烘焙出來的室內(nèi)雖然也會有一定的亮度,但是關(guān)閉實(shí)時光照后處于室內(nèi)的可移動物品就全部變?yōu)楹谏o光狀態(tài))。
②室內(nèi)盡量使用點(diǎn)光源(PointLight)或者聚光燈光源(SpotLight)來進(jìn)行烘焙,可以烘焙的亮一些,然后通過調(diào)整貼圖的亮度來控制光線的亮度。
5.物體旋轉(zhuǎn)問題:
通過eulerAngles進(jìn)行物體旋轉(zhuǎn)的時候會出現(xiàn)萬向鎖的情況,但是直接用Quaternion計算坐標(biāo)又很麻煩,可以通過Quaternion.Euler()方法將eulerAngles轉(zhuǎn)換為Quaternion來解決此問題
Quaternion _angle = Quaternion.Euler(new Vector3(0,45,0));
transform.rotation = _angle;
6.UGUI中無法觸發(fā)事件(比如Button的點(diǎn)擊)問題:
注意一下此UI控件所在Canvas中的EventCamera是否為空,因?yàn)槭录挠|發(fā)是基于攝像機(jī)發(fā)出的射線,若不為空此Canvas下面的所有UI控件的事件觸發(fā)都會基于此攝像機(jī),將此值設(shè)為空后將會默認(rèn)由主攝像機(jī)(MainCamera)觸發(fā)事件。
您可能感興趣的文章:- Unity實(shí)現(xiàn)VR中在黑板上寫字效果
- Unity3D基于陀螺儀實(shí)現(xiàn)VR相機(jī)功能