HTC Vive开发学习——VRTK(2)

Unity开发之SteamVR---VRTK简介 另外,对于其它的交互事件,也会提供相应的unity事件处理,比如VRTK_BasicTeleport_UnityEvents(瞬移事件处理)、VRTK_InteractGrab_UnityEvents(抓取事件处理)、VRTK_InteractTouch_UnityEvents(触摸事件处理),对于各事件发生的不同阶段,都会有对应的处理接口,类似于uGUI中Button的OnClick事件处理形式。此外,它表明如果用户踏入不在对象上的游戏区域的一部分,则用户将落到最近的对象。该对象成为控制器的扩展。 阅读详情

上一节主要剖析了VRTK_ControllerEvents脚本,这一节我们继续通过Demo来学习VRTK。

(二)003_Controller_SimplePointer

上一节关于这个Demo的学习主要还是深入剖析VRTK_ControllerEvents脚本。这一节我们正式开始学习这个脚本,它的继承包括两个层次,父类:VRTK_WorldPointer,祖类:VRTK_DestinationMarker。它们都是抽象类,因此想实现自己的Pointer必须通过继承上述父类进行扩展。这个系列的脚本我看了一遍还是没有什么头绪,下面一点一点地来整理吧。

首先是各种public属性:

Play Area Cursor:看脚本的时候就对这个名称的字段和方法很迷惑。它并不是当射线与一个碰撞体接触并引发碰撞检测时,射线头部出现的“鼠标”(从内部代码来看这个“鼠标”是通过一个Cube来模拟的,而且这个“鼠标”有它自己的相关属性Show Pointer Tip),而是这个Cursor位置将会出现一个Play Area(被冠以Play Area前缀)预览。一旦启用teleport功能,用户的Play Area将会传送到这个所谓Play Area Cursor的位置。这个共有属性和后面的Handle Play Area Cursor Collisions密切相关,如果进行Play Area碰撞检测,那么会进行是否发生传送操作的判断。

其次,我们来看实现:

祖类VRTK_DestinationMarker中定义了三种事件,分别为射线终点进入、退出、设置。进入和退出很好理解,标记设置和teleport有关(后续我们讨论teleport是怎么实现的)。三种事件的触发方法在父类VRTK_WorldPointer中又进行了一步封装,最终封装为了在子类VRTK_SimplePointer中调用的PointerIn/Out/Set。子类的工作主要包括两方面:

(1)重写InitPointer虚方法。不知道在干嘛…貌似父类和祖类都没有实例化这条射线,而是将这个pointer的实现方式抽象出来,这个代码暂时有太多看不懂了…

HTC Vive开发学习——VRTK(1) 本系列是基于Unity和HTC Vive开发虚拟现实应用的学习笔记。Unity环境下Vive开发必用的插件是SteamVR Plugin,除此之外,计划参考一些开源项目和免费的Asset Store插件,暂时涉及的包括:VRTK和Hover UI。VRTK包括基于SteamVR Plugin实现的各种组件,除了提供一个Vive开发的辅助工具,更重要的是,它演示了如何使用SteamVR Plugin... 阅读详情

相关推荐

【Unity】虚拟现实 VRTK插件使用教程(一)插件基本配置

文章目录如何下载 如何下载 在Project中输入“VRTK”。 选择从Asset Store中搜索。 选择 VRTK - SteamVR Unity Toolkit。 导入包或点击下载(不同版本情况不同)。 更多内容请查看总目录【Unity】Unity学习笔记目录整理 ...

一个普普通通的游戏开发者 1万+

HTC Vive开发学习——VRTK + SteamVR Plugin + Hover UI Kit配置

我们基于HTCVive这款VR设备来开发虚拟现实应用。VRTK和Hover UI Kit是查到的两个比较不错的VR开源项目,前者提供了实现VR游戏环境中一些基本交互功能的组件(主要是脚本),后者则提供了一种VR环境下非常友好的UI系统。这里我们讨论如何配置这一套开发环境,并演示一些范例。1.VRTK和SteamVR Plugin配置这个插件的配置方法可参考的资料非常多,除了Github和官网,一些...

fcauto2012的博客 2403

HTC VIVE开发教程(五)

前面几节我们了解了SteamVR的基本原理,现在可以进行实战开发了。但在进行VR开发前,我还要先介绍一套强大的VR开发工具——VRTK在进行VIVE开发时,我们经常要用手柄进行一些操作,比如监听按键响应,通过手柄触摸板进行移动,抓取物体等等。这些交互功能实现起来其实不复杂,但是如果我们自己一个个去写又比较麻烦,为了避免重复造轮子,github上便有了vrtk这套SteamVR开发的工具集。获取vrt

子者不语的专栏 7579

[HTC Vive + Unity开发]——VRTK的研究——用手柄旋转物体(使用VRTK_Knob脚本)

使用VRTK包中的VRTK_Knob脚本 该脚本的作用是: Attaching the script to a game object willallow the user to interact with it as if it were a radial knob. The directioncan be freely set. 也就是说把该脚本挂在一个物体上,就可以用手柄旋转这个物体,

WoW的博客 4661

HTC Vive Cosmos开发——手柄按钮事件

1.环境配置 htc vive cosmos的环境配置

qq_14942529的博客 5075

Unity3D开发HTC VIVE项目中插件HTC.Input.Utility.Plugin插件的运用

这是基于SteamVR基础之上的一款插件,再获得硬件设备上比之前单独使用steamVR方便很多。比如,之前我们获得硬件设备是这样的:首先写一个如下图的脚本,挂在CameraRig的手柄上(看需要那个手柄上的按键)但是,在这里,我们来介绍HTC.Unity.Plugin插件的用法首先我们进行场景和环境的搭建再Store当中找到HTC.Unity.Plugin插件,并且导入,之后再ViveInputU...

qq_38651460的博客 6436

Untiy HTC Vive VRTK 开发记录

此篇记录在开发过程中所使用到的VR功能,不针对VRTK或SteamVR的插件进行解释,或导入等等基础内容的说明,如正在开发VR项目或许可以借鉴本篇中解释的相关功能~

qq_578147153的博客 1793

VRTK3.2.1下载,亲测可以使用

VRTK3.2.1,亲测可以使用,我用的unity2018.2.7,加上SteamVR plugin1.1.1,测试没问题,有问题的话可以参考我的博客,涉及到瞬移、抓取,UI触发

VRTK2.1.0- SteamVR Unity Toolkit.unitypackage

VRTK2.1.0- SteamVR Unity Toolkit.unitypackage,直接拖拽至Unity3D,用于HTC Vive等。

VRTK-2.2.1.zip

VRTK这个工具包提供了许多unity引擎中VR常用的功能,诸如(但不局限于):用常用别名封装的控制器按钮事件控制器世界光标指针(eg.镭射光标steamVR_LaserPointer)玩家传送机制用控制器抓取/握住游戏对象用控制器和游戏对象交互把游戏对象转化为可交互的UI元素VRTK工具包项目拆分:预设、脚本、案例

vrtk 3.2.1 兼容steamvr1.2系列

这是一个老版本的vrtk相对稳定些,配合steamvr可以很方便的使用vr交互,交本可以最少化

ATAC-seq数据分析流程

Outline0. ATAC-seq原理0.1 染色体结构0.2 原理0.3 结果0.4 意义1. ATAC-seq数据分析流程1.1 上游分析(1)序列质控和比对(2)序列筛选1.2 下游分析1.3 进阶分析 0. ATAC-seq原理 0.1 染色体结构 0.2 原理 0.3 结果 0.4 意义 1. ATAC-seq数据分析流程 1.1 上游分析 (1)序列质控和比对 fastqc trim_golare bowtie2 mapping时要加上参数 --very-sensitive -X 2000

weixin_57830892的博客 1万+

thinkphp5.0.24反序列化漏洞分析

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

m0_67392182的博客 1871

C#上位机实战:借助NetToPLCSim与西门子S7-1200仿真通信全攻略

本文详细介绍了如何使用C#开发上位机程序,通过NetToPLCSim与西门子S7-1200进行仿真通信的全过程。从环境准备、PLC仿真环境搭建、网络配置到C#代码实现,提供了完整的实战指南和常见问题解决方案,帮助开发者快速掌握工业自动化通信技术。

weixin_30596343的博客 440

关于token无痛刷新的两个方案

目录方案一方案二 方案一 思路: 后端需要返回一个token过期的时间,在请求发起前拦截每个请求,判断token的有效时间是否已经过期,如果已过期,则暂时将请求挂起,先刷新token后再继续请求。 前期思考: 返回过期时间是为了判断是否过期的,但是如果服务器时间和系统时间不一致呢? 如果同时发起多个请求时怎么办? 实现: 因为是在请求前进行拦截,所以这里用axios的axios.interceptors.request.use()方法 首先,关于服务器时间和系统时间不一致的问题,我的解决方法是:

Yugoup的博客 2716

基于STM32、HAL库的GZP6816D气压传感器 驱动程序设计

测量范围:0-16kPa(可根据型号不同有变化)工作电压:1.8V-3.6V。高精度:±1% FS。

corlin6688的博客 217

具身智能中的(VLA)算法与实践——第一讲 基础与概览

本文介绍了视觉-语言-动作(VLA)模型的基础概念及其在AI领域的重要性。VLA模型通过融合多模态数据实现具身智能,使AI系统能感知环境并执行物理动作。文章探讨了大型语言模型(LLMs)和视觉语言模型(VLMs)如何赋能具身智能,包括指令解析、场景理解和动作规划。同时提供了Python、PyTorch/TensorFlow开发环境的详细搭建指南,包含GPU配置建议和测试代码。VLA模型在机器人操作、导航、人机协作等领域具有广泛应用前景,是实现通用人工智能的关键技术。

u012133341的博客 1598

【入门AUTOSAR网络管理测试】CANoe测试T_WakeUp时间

随着智能电动汽车行业的快速发展,目前AUTOSAR网络管理也得到了广泛应用,AUTOSAR网络管理测试也是汽车网络测试中非常重要的环节,NM问题导致的汽车ECU不能唤醒、电瓶亏电等问题,对于新入门AUTOSAR网络管理测试的同学不清楚如何开展测试,那么本章节就主要给大家介绍网络管理中T_WakeUp时间如何测试。【入门AUTOSAR网络管理测试】AUTOSAR网络管理规范需求解读。

测试领域技术分享 2135

EtherCAT从站EEPROM组成信息详解(2):字8-15产品标识区

以实际的从站EEPROM数据为例,参照EtherCAT的SII规范,详细分析了从站EEPROM字8-字15的产品标识区内容组成。

kevin1499的博客 718

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: HTC Vive开发学习——VRTK(1)
下一篇: HTC Vive开发学习——VRTK + SteamVR Plugin + Hover UI Kit配置
fcauto2012
博客等级 码龄11年 0粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值