前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VR开发--初步了解SteamVR

VR开发--初步了解SteamVR

作者头像
孙寅
发布2020-06-02 17:59:49
1.1K0
发布2020-06-02 17:59:49
举报
文章被收录于专栏:宜达数字宜达数字
1、360°旋转视角

添加其余的视角-扩张

添加好的层级关系:位置-头部-眼睛-耳朵

2、集成手柄

创建游戏对象,分别为左右手,添加脚本:

1、SteamVR_ControllerManager

2、SteamVR_TrackedObject 此类是根据Index来获取跟踪信息并反馈到Unity中。

注:修改Index为none

3、SteamVR_GameView

这个脚本主要负责将游戏画面绘制到窗口上去

4、代码获取手柄对象:

代码语言:javascript
复制
//1获取到某个按键的状态
var device = SteamVR_Controller.Input(uint);
device.GetTouchDown(SteamVR_Controller.ButtonMask)

//2获取当前所有的按键状态
var system = OpenVR.System;
system.GetControllerState(uint, ref VRControllerState_t))

5、手柄震动

代码语言:javascript
复制
public void TriggerHapticPulse(ushort durationMicroSec = 1500, EVRButtonId buttonId = EVRButtonId.k_EButton_SteamVR_Touchpad)
{
  var vr = OpenVR.System;
  if (vr != null)
  {
    var axisId = (uint)buttonId - (uint)EVRButtonId.k_EButton_Axis0;
    vr .TriggerHapticPulse(ControllerIndex, axisId, (char)durationMicroSec);
  }
}
或者可以
var device = SteamVR_Controller.Input(uint);
device. TriggerHapticPulse();

6、SteamVR_Controller

控制器的相关信息都包含在SteamVR_Controller这个脚本之中

而这个脚本是被SteamVR_Render中的Update函数调用,从而循环获得手柄相关信息

6当我们需要使用这些事件时直接监听这些事件即可。


ButtonMask类:手柄各按键的名称

Input()函数:根据Index初始化Device[]数组,并实例化所有16个Device。

Device类:最重要的类,封装了跟踪设备的全部信息。


Device类包含:

GetAxis:获取手柄上圆盘坐标或Trigger的行程值(0-1),函数默认参数是手柄上的Touchpad。共有5个AxisId参数可选,0是TouchPad,1是Trigger,2,3,4应该是没有用的,且此函数只接受EVRButtonId类参数而不接受ButtonMask。

TriggerHapticPulse:手柄震动控制函数,参数名称解释的是时间,默认500,但实际上控制的是震动的强度。默认AxisId是EVRButtonId_touchpad,选择其他EVRButtonId没用(等价参数axis0可以),其会调用OpenVR中的同名函数。参数超过4000会无效,导致震动不触发。可以通过协程的while(true)+waitforsecond控制震动间隔,通过stop协程控制震动结束。同上4操作。

GetHairTrigger

GetHairTriggerDown:定义为有false转至true的过程,判断先前状态和当前状态。

GetHairTriggerUp:定义为有true转至false的过程,判断先前状态和当前状态。

HairTrigger是检测当你握住扳手超过一个固定值(0.1,可调)时即触发的状态。利用Trigger的变化量来做一个功能的触发

7、SteamVR_LaserPoint

主要实现手柄当前指向物体与离开物体的两个方法事件。使用射线检测

7

3、手柄渲染

SteamVR_RenderModel:该组件用于渲染手柄的模型,并且跟踪手柄的位置

4、活动空间(即玩家的活动空间)

SteamVR_PlayArea

用于显示游玩区域

5、HTC Vive参数

HTC vive

参数配置:

  分辨率:单眼 1200 x 1080 的分辨率

  刷新率:最高可达 90hz

  位置追踪范围:4.5m x 4.5m

  其他配置:配套的带有位置追踪的游戏控制器等

推荐电脑配置:

  处理器:Intel i5-4590/AMD FX 8350同等或更高配置

  内存:4GB及以上

  显卡:NVIDIA GTX970/AMD R9290同等或更高配置

  系统:windows 7 SP1 或更高版本

  视频输出:HDMI 1.4或者DisplayPort 1.2或更高版本

  USB接口:1 x USB 2.0 或更高版本的端口

游戏区域要求:

  空间定位:空间最小为 2 米 x 1.5 米 (6 英尺 6 英寸 x 5 英尺)

       基站间最大距离为 5 米 (16 英尺)

  站立/坐立:无最低空间要求

6、参考:

http://www.jianshu.com/p/8cce89d2aef3

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、360°旋转视角
  • 2、集成手柄
    • 7、SteamVR_LaserPoint
    • 3、手柄渲染
    • 4、活动空间(即玩家的活动空间)
    • 5、HTC Vive参数
    • 6、参考:
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档