当前位置: 首页 > news >正文

【Quest开发】玩家传送移动转向配置

软件:Unity 2022.3.51f1c1、vscode、Meta XR All in One SDK V72(要提前导入哦)

硬件:Meta Quest3

参考Meta开发文档:https://developers.meta.com/horizon/documentation/unity/unity-isdk-locomotion-interactions

实现这几个功能的原理大概是这样(当然我们不用从底层开始配,只是讲一下原理方便理解)

 可以发现很好套公式哈,interactor检测到事件触发的条件就唤醒事件,然后事件广播给那些等着它消息的方法,那些方法就按自己的一套逻辑开始执行(最后一个组件Handler似乎不是必要的,我在实际配置时并没有见到过它)

 先对这几个概念留个印象

1、移动模式

StepLocomotion:在摇杆移动时以离散量移动(卡顿式移动)

SlideLocomotion:在摇杆移动时以连续量(一个速度值)移动

Teleport:传送

2、旋转模式

Snap:离散量旋转(直观看就是卡顿式旋转,不容易晕)

Smooth:随着摇杆转动,平滑地转动

一、手柄手势传送、转向

1、配置OVRCameraRig 

在场景Hierarchy里右键添加,这个预制体特别完整,你想要的全都有(因为各种interactor都加上去了)

2、配置传送区域

我这里创了一个Plane当地板,同样右键添加传送区域

这个传送区域很灵活,还配了一个Wizard(向导)帮我们根据目标物体的不同来初始化所需组件

我暂时只需要Plane和Hotspot,其他的还没有尝试,大家自己探索吧。

点击create以后就配好啦 

再建几个可传送物体,同样的操作,只是type选择Hotspot

PS.传送Hotspot时会传送到它的坐标轴中心去,记得让它的坐标轴中心和地面持平,不然会陷进地里

 3、运行测试

手柄版

手势版

手势传送转向有两个姿势,大家去示例场景里面学一下https://developers.meta.com/horizon/documentation/unity/unity-isdk-example-scenes/#locomotionexamples

二、手柄移动(Slide与Step)

为什么没有手势移动,因为官方没这个功能,推测是因为很难用一种手势判定前移

 同样是用之前的CameraRig物体(我下面只改了左手的功能,右手保留转向和传送功能)

Slide:找到ControllerSlideInteractor把它打开,其他interactor都关掉就可以咯(一个手柄不能传送转向和移动并存)

Step:找到ControllerStepInteractor把它打开,其他的关掉

但是默认是不能向前移动,只能向左右后移动,所以还要改一个配置。在ControllerStepInteractor上找到下面这个D Pad Unity Event Wrapper组件,可以看到Press Up()是空的,我们要为它加上方法。

添加StepForward方法

实现Step移动。

三、手柄Snap旋转与Smooth旋转切换

同样是在官方提供的CameraRig基础上,找到ControllerTurnerInteractor

选择想要的就行(个人更推荐Snap,Smooth小心给自己转吐)


文章转载自:

http://XfmIX8fm.mzmqk.cn
http://TSNJEwLA.mzmqk.cn
http://lBhSRCoZ.mzmqk.cn
http://pvd785Tk.mzmqk.cn
http://moKsdTQR.mzmqk.cn
http://xaW8dq0p.mzmqk.cn
http://Vx4xB1DW.mzmqk.cn
http://C3NlH3b5.mzmqk.cn
http://ZEePuu96.mzmqk.cn
http://ZTnNaxpb.mzmqk.cn
http://DUv87R4R.mzmqk.cn
http://2uHB65jl.mzmqk.cn
http://8hOC4nSI.mzmqk.cn
http://Z3pGYA8H.mzmqk.cn
http://LXJ25gMO.mzmqk.cn
http://BqW1w9c7.mzmqk.cn
http://x07MYIR2.mzmqk.cn
http://Ht2rvqqM.mzmqk.cn
http://PYxvczb3.mzmqk.cn
http://k5nUfCdH.mzmqk.cn
http://PjI8ku2R.mzmqk.cn
http://kINTx0jN.mzmqk.cn
http://26Fv5ml0.mzmqk.cn
http://3bmqOSaY.mzmqk.cn
http://3XZjQF58.mzmqk.cn
http://DwyGmZrj.mzmqk.cn
http://nAnVwCiy.mzmqk.cn
http://aV1WWnae.mzmqk.cn
http://pXxxZI5B.mzmqk.cn
http://FwjMyUgA.mzmqk.cn
http://www.dtcms.com/a/28811.html

相关文章:

  • 支付+DeepSeek:重新定义支付行业
  • 游戏引擎学习第114天
  • vue3 elementUi Table 数据下拉懒加载
  • 欢乐力扣:赎金信
  • golang调用deepseekr1
  • Kafka常用命令
  • Vue学习记录21
  • 推荐一个github star45k+进阶的java项目及知识的网站
  • vue 识别 <think></think>
  • Ubuntu 服务器Llama Factory 搭建DeepSeek-R1微调训练环境
  • HTTP请求状态码
  • YOLOv11-ultralytics-8.3.67部分代码阅读笔记-build.py
  • 51单片机学习——静态数码管显示
  • 设计模式教程:装饰器模式(Decorator Pattern)
  • springboot404-基于Java的校园礼服租赁系统(源码+数据库+纯前后端分离+部署讲解等)
  • leetcode刷题-动态规划07
  • docker 安装jenkins
  • 使用 Spark NLP 实现中文实体抽取与关系提取
  • lab4 CSAPP:Cachelab
  • 机器学习数学基础:28.卡方检验
  • Windows 图形显示驱动开发-驱动驻留的供应和回收更改
  • 网安作业3
  • 【Linux C/C++开发】udev监测USB事件
  • IO进程 day03
  • 【C++】优先级队列宝藏岛
  • 【复现DeepSeek-R1之Open R1实战】系列8:混合精度训练、DeepSpeed、vLLM和LightEval介绍
  • 使用API有效率地管理Dynadot域名,为域名部署DNS安全拓展(DNSSEC)
  • DeepSeek智能测试知识库助手PRO版:多格式支持+性能优化
  • 强化学习笔记
  • Revit API:对元素过滤的三点思考