[UE4]计算箭头方向:正切、SetRelativeRotation、RotationFromXVector、Get MotionController Thumbstick X

正切


UE4提供了更直接的函数,可以把角度很方便的计算出来。
1、表示角度有2种方式:Vector、Rotator。Vector本身也是可以表示方向,Vector包含方向和大小。
2、Vector和Rotator是可以互相转换的。

3、手指在手柄圆盘上的位置就是坐标,可以映射到UE4中坐标,然后调用RotationFromXVector,就可以把手指所在位置直接转换成角度。
4、分析手柄原本坐标与UE4坐标的对应关系。视角的方向正好是X轴,横轴是Y轴;

5、可以通过MotionController thumbstick X和MotionController thumbstick Y事件得到手指在手柄圆盘上的位置。thumbstick X和thumbstick Y事件是每一帧都会被调用,如果手指没有触摸手柄圆盘,则Axis Value的值为0。

6、UE4提供了2个函数可以更直接地获得手指在手柄圆盘上的位置:Get MotionController Thumbstick X、Get MotionController Thumbstick Y

7、SetWorldrotation和SetRelativeRotation。我们拿着手柄的时候,大拇指停留在手柄圆盘的右上角,箭头朝向就应该是相对于手柄右上角,手拿着手柄转动的时候,但是大拇指相对于手柄圆盘的位置是不变的,
箭头相对于手柄的朝向是发生变化的,箭头的绝对朝向和绝对位置都是发生变化的,但是相对于手柄圆盘的朝向和位置是不变的。
箭头的朝向是相对于手柄朝向的。因此我们要使用相对Rotation来设置,也就是SetRelativeRotation。




Arrow应该要放在手柄下面,作为手柄的子节点,因为箭头的朝向是相对于手柄朝向的。
[UE4]计算箭头方向:正切、SetRelativeRotation、RotationFromXVector、Get MotionController Thumbstick X的更多相关文章
- [UE4]计算小地图比例尺
一.调整到顶视图,按住鼠标中键从地图的左边拉一根线到右边,可以看到距离是4000厘米(UE4单位是厘米). 二.查看到缩略图片的长度是512px,512/4000 = 0.128,比例尺是0.128. ...
- [UE4]计算两点距离
(Vector-Vector).VectorLength (Vector_End- Vector_Start ).Normalize,获取从起始位置指向目标位置的单位向量.
- [UE4]计算AimOffset偏移动画的角度
- [UE4]计算2点坐标附近的坐标:线性插值法
float distance = FVector::Distance(SelfLocation, TargetLocation); .f / distance; DrawDebugPoint(GetW ...
- JAVA Math类
public class MathTest{ public static void main(String[] args) { /*---------下面是三角运算---------*/ //将 ...
- Java基础知识强化79:被遗忘的Java Math类
1. Math类概述 Math类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数. 2. 成员变量 和 成员方法(常用的) (1)成员变量 public static final d ...
- CG 标准函数库
(1)数学函数 函数 功能描述 abs(x) 返回输入参数的绝对值 acos(x) 反余切函数,输入参数范围为[-1,1], 返回[0,π]区间的角度值 all(x) 如果输入参数均不为0,则返回tu ...
- java.math.*;(一)
package com.test; /* Math类: java.lang.Math类中包含基本的数字操作,如指数.对数.平方根和三角函数. java.math是一个包,提供用于执行任意精度整数(Bi ...
- 【Java】-NO.16.EBook.4.Java.1.007-【疯狂Java讲义第3版 李刚】- Java基础类
1.0.0 Summary Tittle:[Java]-NO.16.EBook.4.Java.1.007-[疯狂Java讲义第3版 李刚]- Java基础类 Style:EBook Series:J ...
随机推荐
- oracle针对某列让特定信息排序[decode]
在ORACLE查询中,如果在没有排序,但又想让某列中特定值的信息排到前面的时候,使用oracle的decode(字段,'字段值',数字) 如 select name from user 查询出来的所有 ...
- golang context
ex1 package main import ( "fmt" ) // 最佳context 实践 // Context 目标是实现各个goroutine能及时终止退出. func ...
- notepad++取消语法检测
- InstallShield 软件打包完整教程(含添加自定义依赖环境)
任务说明:公司一个绿色版的软件,为安装部署是需要很多的环境依赖,如 DevExpress..net4.5.WinRAR等,客户提出安装复杂,并且有漏装后无法启动等情况,现将绿色版转安装版,并将依赖环境 ...
- 转发: 探秘Java中的String、StringBuilder以及StringBuffer
原文地址 探秘Java中String.StringBuilder以及StringBuffer 相信String这个类是Java中使用得最频繁的类之一,并且又是各大公司面试喜欢问到的地方,今天就来和大家 ...
- biaffineparser
代码: 一.pytorch,可以直接跑 https://github.com/chantera/biaffineparser python parser.py train --out model -- ...
- Qt学习2---信号与槽
connect(&b1,&QPushButton::pressed,this,&MainWidget::close); &b1:信号发出者,指针类型 &QPus ...
- linux磁盘分区笔记
磁盘基本概念: 硬盘结构:盘片+磁头(盘片可以有多个),工作时盘片高速运转,磁头读取数据 U盘.SSD固态硬盘是用闪存来制作的设备,没有盘片和磁头 Linux磁盘文件名: Linux所有设备都抽象为文 ...
- 总结描述用户和组管理类命令的使用方法,系统用户相关信息,取出主机IP地址
1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可. [root@db146 ~]# who|cut -f1 -d' ' |sort -u root 2.取出最后 ...
- 安装Kali linux
Kali介绍 Kali Linux是基于debian的Linux发行版, 设计用于数字取证操作系统.由Offensive Security Ltd维护和资助.最先由Offensive Security ...