天天看點

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"))

//搖杆的一個方向

本文轉自 甯金峰 51CTO部落格,原文連結:http://blog.51cto.com/13243523/2046415,如需轉載請自行聯系原作者

上一篇: 檔案共享
下一篇: 漸變的圓

繼續閱讀