【VRTK4.0运动专题】手柄控制物体移动和旋转

2023-11-10 08:51

本文主要是介绍【VRTK4.0运动专题】手柄控制物体移动和旋转,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 原理
        • 预设体将两轴转化为位置向量或角度后,调用运动脚本的方法,对指定的物体进行移动或旋转
    • 步骤
        • 1、将轴转化为位置向量或角度: 建轴转化预设体,关联两轴,
        • 2、准备带有要用方法的运动脚本: 建功能物体,挂载运动脚本,拖入要运动的物体
        • 3、调用运动脚本的移动或旋转方法

原理

预设体将两轴转化为位置向量或角度后,调用运动脚本的方法,对指定的物体进行移动或旋转

步骤

1、将轴转化为位置向量或角度: 建轴转化预设体,关联两轴,

建“轴转位置向量”预设体AxesToVector3Action,其水平轴、纵轴, 分别关联手柄触控板的水平、竖直轴(下图一)
建“轴转角度”预设体AxesToAngle,其水平轴、竖直轴,分别关联手柄触控板的水平、竖直轴(下图二)
图一
在这里插入图片描述

2、准备带有要用方法的运动脚本: 建功能物体,挂载运动脚本,拖入要运动的物体

建空物体,重命名为movement,挂载TransformPositionMutator脚本,拖入要移动的物体(下图一)

建空物体,重命名为rotation,挂载FloatToVector3脚本、TransformEularAngleMutator脚本,拖入要旋转的物体(下图二)

在这里插入图片描述
在这里插入图片描述

3、调用运动脚本的移动或旋转方法

移动:AxesToVector3Action预设体直接调用功能物体movement上位置变异器脚本的DoIncrementProperty()
在这里插入图片描述
旋转:AxesAngle预设体,本该调用功能物体rotation上TransformEularAngleMutator脚本的DoSetProperty方法
但由于AxesToAngle把轴数据转化为的角度,似乎是浮点数,不能直接用,需先借助“FloatToVector3”的DoTransform方法转成Vector3三维向量形式的角度数据,然后“FloatToVector3”脚本再去调用TransformEularAngleMutator脚本的DoSetProperty方法,从而实现AxesToAngle间接调用DoSetProperty方法的目的。

另外注意,FloatToVector3脚本里,除了转换数据格式的DoTransform方法,还有一个CurrentY属性

在这里插入图片描述
在这里插入图片描述

这篇关于【VRTK4.0运动专题】手柄控制物体移动和旋转的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/381638

相关文章

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

poj 2187 凸包or旋转qia壳法

题意: 给n(50000)个点,求这些点与点之间距离最大的距离。 解析: 先求凸包然后暴力。 或者旋转卡壳大法。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <s

我在移动打工的日志

客户:给我搞一下录音 我:不会。不在服务范围。 客户:是不想吧 我:笑嘻嘻(气笑) 客户:小姑娘明明会,却欺负老人 我:笑嘻嘻 客户:那我交话费 我:手机号 客户:给我搞录音 我:不会。不懂。没搞过。 客户:那我交话费 我:手机号。这是电信的啊!!我这是中国移动!! 客户:我不管,我要充话费,充话费是你们的 我:可是这是移动!!中国移动!! 客户:我这是手机号 我:那又如何,这是移动!你是电信!!

Android 10.0 mtk平板camera2横屏预览旋转90度横屏拍照图片旋转90度功能实现

1.前言 在10.0的系统rom定制化开发中,在进行一些平板等默认横屏的设备开发的过程中,需要在进入camera2的 时候,默认预览图像也是需要横屏显示的,在上一篇已经实现了横屏预览功能,然后发现横屏预览后,拍照保存的图片 依然是竖屏的,所以说同样需要将图片也保存为横屏图标了,所以就需要看下mtk的camera2的相关横屏保存图片功能, 如何实现实现横屏保存图片功能 如图所示: 2.mtk

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显

用Unity2D制作一个人物,实现移动、跳起、人物静止和动起来时的动画:中(人物移动、跳起、静止动作)

上回我们学到创建一个地形和一个人物,今天我们实现一下人物实现移动和跳起,依次点击,我们准备创建一个C#文件 创建好我们点击进去,就会跳转到我们的Vision Studio,然后输入这些代码 using UnityEngine;public class Move : MonoBehaviour // 定义一个名为Move的类,继承自MonoBehaviour{private Rigidbo

控制反转 的种类

之前对控制反转的定义和解释都不是很清晰。最近翻书发现在《Pro Spring 5》(免费电子版在文章最后)有一段非常不错的解释。记录一下,有道翻译贴出来方便查看。如有请直接跳过中文,看后面的原文。 控制反转的类型 控制反转的类型您可能想知道为什么有两种类型的IoC,以及为什么这些类型被进一步划分为不同的实现。这个问题似乎没有明确的答案;当然,不同的类型提供了一定程度的灵活性,但

简单的角色响应鼠标而移动

actor类 //处理移动距离,核心是找到角色坐标在世界坐标的向量的投影(x,y,z),然后在世界坐标中合成,此CC是在地面行走,所以Y轴投影始终置为0; using UnityEngine; using System.Collections; public class actor : MonoBehaviour { public float speed=0.1f; CharacterCo

Unity3D 运动之Move函数和translate

CharacterController.Move 移动 function Move (motion : Vector3) : CollisionFlags Description描述 A more complex move function taking absolute movement deltas. 一个更加复杂的运动函数,每次都绝对运动。 Attempts to