VR开发——Unity中的VR Api的介绍(**V客学院**)
来源:互联网 发布:织梦模板html源码 编辑:程序博客网 时间:2024/05/17 18:04
VR开发——Unity中的VR Api的介绍(V客学院)
今天我们来讲一讲Unity中的原生VR支持。Unity的原生支持虽然没有SteamVR插件和其扩展插件VRTK好用,但是贵在简单,可以和Unity进行无缝连接。
图中是Unity文档中关于VR的相关API,我们一个个来学习:
1.InputTracking 文档如下
静态变量:
disablePositionalTracking 用来设定是否追踪位置: True/False 启用/关闭
静态方法:
GetLocalPosition 获取某个节点的本地位置 传入参数类型:VRNode 类型
GetLocalRotation 获取某个节点的本地旋转 传入参数类型:VRNode 类型
GetNodeName 根据节点ID返回其名称 传入参数类型:uLong 类型
GetNodeStates 获取指定节点列表的状态信息
Recenter 跟踪头盔的当前位置和方向。
事件:
nodeAdded 当跟踪的节点添加到底层的VR / AR系统时调用。
nodeRemoved 当跟踪的节点从底层的VR / AR系统中删除时调用。
trackingAcquired 跟踪节点开始报告跟踪信息时调用。
trackingLost 跟踪节点停止报告跟踪信息时调用。
使用:
代码需要引用UnityEngine.VR
/// <summary> /// 左右控制器,放手部的模型 /// </summary> public GameObject _Hander_Left = null;//使用之前请先在Unity指定一个物体,没写保护 public GameObject _Hander_Right = null;//使用之前请先在Unity指定一个物体,没写保护 //控制手柄相关操作 void MonitoringDeviceInput() { //检测设备输入,如果获得Joystick设备名称列表的长度大于0的时候,且 列表中的第一个元素名称不为空值,表示检测到外部输入设备 //手柄存在,每一次在进行操作之前,得把设备的数量确认,防止BUG存在,使用一个变量来接收此数据 int joyNum = Input.GetJoystickNames().Length; //追踪头盔的位置和方向 InputTracking.Recenter(); //追踪手柄的位置和旋转,改变手柄的相对位置,和相对旋转 _Hander_Left.transform.localPosition = InputTracking.GetLocalPosition(VRNode.LeftHand); _Hander_Right.transform.localPosition = InputTracking.GetLocalPosition(VRNode.RightHand); _Hander_Left.transform.localRotation = InputTracking.GetLocalRotation(VRNode.LeftHand); _Hander_Right.transform.localRotation = InputTracking.GetLocalRotation(VRNode.RightHand); //以下是手柄上一部分的操作触发 if (Input.GetKeyDown (KeyCode.Joystick1Button8)) { //左边圆盘按下 } if (Input.GetKeyDown (KeyCode.Joystick2Button9)) { //右边圆盘按下 } if (Input.GetKeyDown (KeyCode.Joystick1Button14)) { //左边扳机按下 } if (Input.GetKeyUp (KeyCode.Joystick1Button14)) { //左边扳机抬起 } if (Input.GetKeyDown (KeyCode.Joystick2Button15)) { //右边扳机按下 } if (Input.GetKeyUp (KeyCode.Joystick2Button15)) { //右边扳机抬起 } }
最后,以上这段逻辑插入Update执行,由于是追踪的本地,那么手柄模型、摄像机得放在同一个父物体下,代码也在父物体上。
在项目中去试一试吧!记得勾选VR支持!
谢谢大家!请关注我们V客学院的二维码哦!
阅读全文
0 0
- VR开发——Unity中的VR Api的介绍(**V客学院**)
- VR开发——Unity动画系统(V客it学院技术分享)
- VR开发——Unity动画系统2(V客it学院技术分享)
- VR资讯——局势明朗下的前景展望(V客学院知识分享)
- VR开发——Unity中导入常用的VR开发插件及简单使用
- Unity使用Cardboard、MojingSDK等VR插件的3DUI(UGUI)凝视效果的实现(V客学院知识分享)
- Unity 5.3 官方VR教程(—)VR综述
- Daydream VR入门基础教程,VR开发基础知识——VR view基本介绍
- Unity VR游戏开发干货教程:VR中的交互方式
- Unity VR游戏开发干货教程:VR中的交互方式
- VR开发基础—VR视频
- 走进VR开发世界(4)——走进VR游戏开发的世界
- 使用HTC和Steam VR进行unity VR的开发第二步 (实现功能)
- 【VR】Unity3d VR学习笔记——Unity烘焙
- 漫步VR——Unity语音聊天室开发小结
- Unity——VR分屏关于UGUI的摆放,UI如何放进vr分屏中
- 最适合开发VR游戏大作的游戏引擎——Unity
- 最适合开发VR游戏大作的游戏引擎——Unity
- CSRF攻击原理及防御
- JS操作串口方法简介
- Spark API 之 map、mapPartitions
- vimの:normal用法
- 外链检查
- VR开发——Unity中的VR Api的介绍(**V客学院**)
- 第三十五篇: JAVA发送邮件最全示例
- Spring Data JPA入门
- 648. Replace Words
- 论最恶心的公司老板
- K-Means聚类算法及延伸
- spring的基本注解使用demo
- <数据结构与算法>二分查找(折半查找)
- StringUtils的isBlank与isEmply