【虛擬現(xiàn)實】Unity3D+VR的實現(xiàn)

針對CardBoard一類的眼鏡用Unity3D開發(fā)VR內容。

1、創(chuàng)建VRCamera:

使用Dive插件,從DiveUnityDemo提取攝像機和有關的腳本并export出來。

2、對象選擇:

視選模式:從眼睛發(fā)射一條射線,選擇看到的對象。

手柄模式:藍牙手柄上的按鍵來選擇對象。

3、視選模式的實現(xiàn):

視選:使用Raycast檢測,RaycastHit返回碰撞到的物體信息。

private RaycastHit rayHitInfo;

public Transform goPoint;//為射線發(fā)出點,是兩個攝像機中間的一個點。

if (Physics.Raycast(goPoint.position, goPoint.forward, out rayHitInfo))

{

Debug.Log("RaySelect: " + rayHitInfo.collider.gameObject.name);

}

焦點:新建一個Plane,和Point放在同一個局部坐標系下,然后調整transform,使其放到視野中間,去選Mesh collider。

給焦點開發(fā)動畫效果:Texture循環(huán)播放。

給視選設置一個停留時間:不是說看到某個物體就觸發(fā),而是盯著某個物體一定時間才觸發(fā)。

4、手柄模式的實現(xiàn):

檢測手柄是否存在:

if ((Input.GetJoystickNames().Length > 0) && (!Input.GetJoystickNames()[0].Equals("")))

{

//手柄存在

}

void Start ()

{

InvokeRepeating("detect", 0, 5);//每隔5s調用一次detect函數(shù),做檢測手柄動作。

}

檢測手柄按鍵:

if (Input.GetKeyDown(KeyCode.Joystick1Button0))

{

//手柄鍵1

}

else if (Input.GetKeyDown(KeyCode.Joystick1Button1))

{

//手柄鍵2

}

//以此類推

設置并檢測手柄搖桿:

設置搖桿通過在input里面增加axis的手柄,4個方向,要新增設置四個。

檢測搖桿:

if (Input.GetAxis("AxisName"))

{

//搖桿的一個方向

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容