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"))
{
//搖桿的一個方向
}
更多unity2018的功能介紹請到paws3d爪爪學院查找。
總結
以上是生活随笔為你收集整理的Unity3D+VR的实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于arguments
- 下一篇: Lambda 表达式的应用