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


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


5.更新SteamVR時如果之前不小心刪除了SteamVR的本地文件
執行“運行”或“更新”時就會出現錯誤,這是可以通過下面的步驟重新安裝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上時觸發下方功能
···
}
2.VS2019調試unity項目:
在頂部菜單欄中“調試”->“附加到Unity調試程序”

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