专栏首页宜达数字VR开发--SteamVR框架工具(1):VRTK

VR开发--SteamVR框架工具(1):VRTK

1、工具集成方法:

1、GitHub远程仓库: git clone https://github.com/thestonefox/SteamVR_Unity_Toolkit 2、从Unity Store商店导入:

框架工具: 因为SteamVR plugin含有令人困惑或不完善的代码,所以框架作者决定创建一个脚本/资源集合,我们用Unity3d创建VR很方便。

2、集成SteamVR插件:

由于框架工具是集成SteamVR,所以我们导入HTC Vive api

3、控件基础

1、【CameraRig】:就是头盔视角模型,拖入场景即可触发头盔显示 它内部包含了控制器上模型的子物体(头盔与左右手柄控制器)

2、【FramesPerSecondCanvas】` 这个画布添加一个表示帧率的文本元素到头盔上。使用这个预制必须把它放到场景中,然后头盔的相机需要被添加到画布上。

选择场景中的FremesPerSecondCanvas对象 2.1找到Canvas组件 2.2设置Render Camera参数为 [CameraRig]预制里的Camera(eye)

预制上有很多可以被设置的参数。展开层级视图中的FramesPerSecondCanvas对象,显示子对象 FramesPerSecondText并点击显示额外参数,这些参数可以通过FramesPerSecondViewer脚本来设置。

所在脚本控件:详细参阅018场景

4.脚本Scripts

  包含所有添加到Unity的VR功能工具脚本
4.1: ****VRTK_ControllerActions - 控制器行为 :****

处理常见控制器行为的帮助方法 动给定时长的能力

//如果控制器模型是可见的返回真,否则返回假。
IsControllerVisible(): 

//根据所给布尔值状态设置控制器模型的可见性。如果传入true,控制器模型就被显示出来,如果传入false,控制器就被隐藏了。
ToggleControllerModel(bool on):

// 启动控制器开始震动,根据给定的持续计时(第一个参数)和震动强度(第二个strength参数)。最大强度可以是3999,超过就限制为3999。
TriggerHapticPulse(int duration, ushort strength):
016脚本展示隐藏控制器和让控制器在给定强度下震
4.2: ****VRTK_ControllerEvents:****控制器事件

控制器事件脚本被添加到 [CameraRig]预制里的控制器对象上,为控制器上的每个按钮按下提供事件监听(除了系统菜单按钮,因为这个按钮不能被重载,只能由Steam使用)。

内部事件发出属性

脚本所在位置: SteamVR_Unity_Toolkit/Examples/Resources/Scripts /VRTK_ControllerEvents_ListenerExample.cs脚本

脚本02场景看VRTK_ControllerEvents例子

参考文档: 1、http://www.jianshu.com/p/8f731eac95db 2、http://www.manew.com/thread-91035-1-1.html 3、http://www.cnblogs.com/czaoth/p/5610573.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • iOS开发--UIWindow与程序启动原理与两种创建控制器的方法

    UIWindow是一种特殊的View 1.iOS启动完毕后,创建的第一个视图控件就是UIWindow。 2.接着创建控制器的View, 3.然后将控制器的...

    雷潮
  • VR开发--SteamVR框架工具(4):可交互对象+抓取交互对象+使用可交互对象+自动抓取可交互对象

    Touch Interactions:触摸交互 Highlight On Touch:如果勾选,这个对象在控制器触摸它时就会高亮。 Touch Highli...

    雷潮
  • VR开发--SteamVR Plugins中实现移动功能(最新)

    新版的VRTK工具已经不支持瞬移功能的直接添加,需要添加VRTK控制器来进行相关的瞬移功能

    雷潮
  • iOS多控制器之UINavigationController&UITableBarController1. 多控制器2. UINavigationController3. UITableBarCont

    stanbai
  • 如何提高SDN可拓展性

    Software Defined Networking是一种控制平面和数据平面分离的可编程的网络架构,目前已经有许多商业落地案例。在部署SDN时,往往会因SDN...

    SDNLAB
  • kubernetes从懵圈到熟练 – 理解集群控制器

    当我们尝试去理解K8S集群工作原理的时候,控制器肯定是一个难点。这是因为控制器有很多,具体实现大相径庭;且控制器的实现用到了一些较为晦涩的机制,不易理解。但是,...

    kubernetes中文社区
  • 浅析 Kubernetes 控制器的工作原理

    Kubernetes 中运行了一系列控制器来确保集群的当前状态与期望状态保持一致,它们就是 Kubernetes 的大脑。例如,ReplicaSet 控制器负责...

    米开朗基杨
  • JMeter逻辑控制器08

    前言 在jmeter中逻辑控制器主要分类两类: 控制jmeter测试计划中节点的逻辑执行顺序等等 对jmeter的节点进行分组,方便结果统计等等 进一步简化下,...

    苦叶子
  • 【云原生架构】节俭K8s Operator 第2部分:将控制器缩放到零

    在本系列博客的第1部分中,我们介绍了这样一种想法,即Kubernetes运营商(在大规模部署时)可以消耗大量资源,无论是实际资源消耗还是可调度容量的消耗。我们还...

    首席架构师智库
  • PHP-TP框架中的控制器

    表示默认情况下,控制器无特殊后缀。例如 Index控制器,文件名为Index.php

    cwl_java

扫码关注云+社区

领取腾讯云代金券