SteamVR2.X与VRTK4的集成

最近,在Unity中国官方学习网站看了一个关于SteamVR2.X开发的指南,里面除了基本Interaction System组件的介绍使用外,还有一个有意思的部分就是SteamVR2.X怎么与最新版的VRTK4进行集成开发,在此记录分享一下吧

准备工作

进入Packages文件中的manifest文件

“scopedRegistries”: [ { “name”: “npmjs”, “url”: “https://registry.npmjs.org/”, “scopes”: [ “io.extendreality” ] } ],粘贴到dependencies前面

“io.extendreality.tilia.camerarigs.trackedalias.unity”: “1.5.9”,“io.extendreality.tilia.interactions.interactables.unity”: “1.15.10”,“io.extendreality.tilia.interactions.snapzone.unity”: “1.1.54”,粘贴到dependencies后面

在VRTK4中,连接VRTK和头显手柄的桥梁是Tilia CameraRig TrackedAlias

在Packages中的 Tilia CameraRig TrackedAlias文件夹下拖出对应的预制体

在Player身上挂载LinkedAliasAssociationCollection脚本

PlayerArea:Player

Headset:VRCamera

Headset Camera:VRCamera

LeftController:LeftHand

LeftController Velocity Tracker(左手控制器速度估算组件):要编写脚本继承VRTK的类:VelocityTracker(using Zinnia.Tracking.Velocity),用于拾取物体后扔出等速度的估算

右手同左手一样

在SteamVR的Hand脚本中有返回手柄速度和角速度的两个函数,将这两个函数分别添加到对应的:VelocityTracker在重写函数中

然后把完成的脚本附加到左右手,最后赋值到左右手的控制器速度估算组件框中

设定完成后,把Player拖给Tilia CameraRig TrackedAlias预制体中的Tracked Alias Facade中

与游戏物体的交互

利用Tilia Interactions Interactables Unity包

让手柄控制器有交互的能力:Interactors

把Interactors文件夹下的Interactions.Interactor拖到 CameraRig TrackedAlias游戏物体的左右控制器(XXXControllerAlias)中

把 Player中绑定了Velocity Tracker的左右控制器,拖入对应的Interactions.Interactor中的VelocityTracker框中

编写脚本,把SteamVR中的Action转换为VRTK的Action,继承BooleanAction(using Zinnia.Action)

在SteamVR_Action.default.GrabPinch.onChange的监听回调中:Receive(newState)

将脚本附加到左右手后,分别赋值给Interactions.Interactor中的GrabAction中

设置游戏物体

选中游戏物体在Windows中找到Zinnia选项,点击将物体转为为可交互物体

设置PrimaryAction为Follow

GrabOffset设置为Precision Point

Secondary Action中可以选中第二手柄的动作:交换、控制方向、放缩等

SnapZone功能

利用Tilia Interactions SnapZone Unity包

在SnapZone文件夹下拖出:Interactions.SnapZone预制体

把要交互(吸附)的对象的副本拖入到预制体中,然后将其转换为可交互的游戏对象

更换SnapDestination下找到高亮的Mesh,将其替换,然后Reset他的Transform

创建一个透明材质将其替换(Transparent Shader)

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

int_Paul

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值