針對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,如需轉載請自行聯系原作者