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交互,交本可以最少化

从入门到精通:MATEKH743 飞控全解析——MAVLink 接口软/硬件对接实战

MATEKH743飞控是基于STM32H743微控制器的无人机核心控制系统,具备强大计算能力和丰富外设接口。该飞控采用双核架构,集成高性能IMU、气压计等传感器,支持多种开源固件(Betaflight/INAV/ArduPilot),适用于FPV穿越机、固定翼及工业无人机。相比PX4等飞控,MATEKH743在性价比和DIY友好度上优势明显,同时支持MAVLink协议实现设备通信。未来发展方向包括集成更高精度传感器、优化电源管理以及拓展工业应用场景,持续推动无人机技术创新。

bother3000的博客 2284

图像传感器与信号处理——SFR算法/ISO 12233解读

图像传感器与信号处理——SFR算法图像传感器与信号处理——SFR算法1. 前言2. 基于视觉的分辨率测量方法3. 基于边界的SFR算法4. 基于正弦波的SFR算法 图像传感器与信号处理——SFR算法 SFR的全称是Spatial Frequency Response,空间频率响应。介绍SFR算法的参考文献主要是ISO 12233这篇英文文档。和读一般的论文感觉不同,文档读起来更加晦涩难懂,可能是因...

weixin_44580210的博客 1万+

开源机器学习平台tipdm

TipDM建模平台 tipdm开源的python机器学习建模平台,用户通过拖拉就可以实现模型开发。 项目结构 backend :为java后台服务代码 frontedn :为vue js前端代码 mock-oauth-server:为java认证服务代码 主要分析backend后台服务代码,典型的java spring mvc web项目,项目结构如下: framework-common:公共代码,主要为工具类,spring相关公用类 framework-model: 实体..

wflh323的专栏 4247

面板数据分析中的随机前沿软件FRONTIER Version 4.1应用

随机前沿模型是一种用于评估单位效率的统计方法。它考虑了输入和输出的随机性,允许我们在效率评估中引入不确定性。随机前沿模型通常用于评估生产单位、金融机构、医院等各种类型的决策单元的效率。FRONTIER是一个广泛使用的随机前沿分析软件,具有用户友好的界面和强大的功能。它提供了估计效率、前沿分析和模型比较的工具,使用户能够深入研究单位的效率和绩效。面板数据是一种包含多个单位(通常是时间序列数据)的数据类型,可以用于分析单位在不同时间点的变化和效率。

目标检测专栏持续更新中,改进YOLO系列通用,适用v5、v7、v8、所有博客均是团队原创博客,所有文章禁止转载,违者必究。 2982

Unidbg补环境实战:复现Shopee风控Native层运行环境

Android App风控已从HTTP层签名校验,演进为深度依赖Native层系统调用与硬件特征的多维验证。其核心原理在于通过JNI桥接Java与Native代码,调用openat、sysconf、getrandom等系统接口读取/proc、/sys、/dev等路径的真实状态,并结合SELinux策略、CPU拓扑、分区哈希等硬性指标构建设备可信画像。这种技术架构显著提升了对抗黑灰产的能力,但也对逆向分析与自动化调用提出更高要求——必须精准模拟底层环境而非仅Hook逻辑。Unidbg补环境正是为此而生:它支持

weixin_30533109的博客 636

《AgentScope-Java 深入浅出教程》第2章 环境搭建与第一个智能体

创建// 【导入说明】/*** 时间相关工具类* 工具类是普通的 Java 类,通过注解声明为工具。* 智能体可以根据用户需求自动调用这些工具。*/// 【工具定义】获取当前时间@Tool(name = "get_current_time", // 工具名称:LLM 看到的名称description = "获取指定时区的当前时间" // 工具描述:帮助 LLM 理解何时使用// 【参数定义】// @ToolParam 的 name 属性是必需的!

步子哥的博客 417

百度百科 X-Bk-Token 算法还原

百度百科 X-Bk-Token 算法还原

自成背后的博客 1万+

ios开发拒绝“玄学”Crash:从循环引用到脏内存,构建你的系统性排查思维模型

你申请了内存,写了数据,这块内存就是脏的。系统无法直接回收它,除非你显式释放,或者系统把它 swap 出去(但在 iOS 上,Compressed Memory 机制虽然能压缩,但不会像桌面系统那样频繁 swap 到磁盘,一旦压缩内存也撑不住,你也得挂)。所以,排查 OOM 的核心心法只有一条:不要问“哪里漏了”,要问“每一刻,留在这个页面上的内存,凭什么必须在这里?一旦内存水位线逼近阈值(不同机型不同,老机器可能 600MB 就危,新机器能抗 1.5GB),系统发个警告。

大模型大数据攻城狮的专栏 724

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值