【虛擬現實】Unity3D+VR的實現


【虛擬現實】Unity3D+VR的實現


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

1、創建VRCamera:
使用Dive插件,從DiveUnityDemo提取攝像機和有關的腳本並export出來。

2、對象選擇:
視選模式:從眼睛發射一條射線,選擇看到的對象。
手柄模式:藍牙手柄上的按鍵來選擇對象。

3、視選模式的實現:
視選:使用Raycast檢測,RaycastHit返回碰撞到的物體信息。
private RaycastHit rayHitInfo;
public Transform goPoint;//為射線發出點,是兩個攝像機中間的一個點。
if (Physics.Raycast(goPoint.position, goPoint.forward, out rayHitInfo))
{
    Debug.Log("RaySelect: " + rayHitInfo.collider.gameObject.name);
}
焦點:新建一個Plane,和Point放在同一個局部坐標系下,然后調整transform,使其放到視野中間,去選Mesh collider。
給焦點開發動畫效果:Texture循環播放。
給視選設置一個停留時間:不是說看到某個物體就觸發,而是盯着某個物體一定時間才觸發。

4、手柄模式的實現:
檢測手柄是否存在:
if ((Input.GetJoystickNames().Length > 0) && (!Input.GetJoystickNames()[0].Equals("")))
{
    //手柄存在
}
void Start () 
{
    InvokeRepeating("detect", 0, 5);//每隔5s調用一次detect函數,做檢測手柄動作。
}
檢測手柄按鍵:
if (Input.GetKeyDown(KeyCode.Joystick1Button0))
{
    //手柄鍵1
}
else if (Input.GetKeyDown(KeyCode.Joystick1Button1))
{
    //手柄鍵2
}
//以此類推
設置並檢測手柄搖桿:
設置搖桿通過在input里面增加axis的手柄,4個方向,要新增設置四個。
檢測搖桿:
if (Input.GetAxis("AxisName"))
{
    //搖桿的一個方向
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM