第一人称视角获得运动方向和视角的夹角

1. GetVelocity获得速度的vector

2. 使用RotationFromXVector和速度的vector得到世界坐标系里速度向量和世界坐标系X轴的夹角

    虽然,RotationFromXVector返回的是一个rotation,但实际上只有Yaw值有效,因为Yaw(围绕Z轴的偏转角)

     即为速度vector和X轴的夹角。

3. GetActorRotation或者GetWorldRotation获得世界坐标系里,角色的pitch,yaw,roll的角度值,

    实际我们只关心yaw。

4. 将上面获得的角度值使用InvertRotator反转一下,也就是如果上面的yaw是90度,反转后为-90度。

5. 将RotationFromXVectorInvertRotator得到的rotatotion使用CombineRotators组合后即可得到角色坐标系里

    速度vector和X轴的夹角即yaw的度数。

总结:

    实际就是如果GetActorRotation获得的是90度夹角,那么RotationFromXVector就得减去90度,这样就能获得

角色标系里的夹角了。这也就是InvertRotator的作用。也就是说,使用速度到世界坐标X轴夹角的角度加上

角色坐标系X轴和世界坐标系X轴的夹角乘上负一,就可以得到速度在角色坐标的X轴夹角。因为速度到世界

坐标X轴夹角的角度实际上是速度在角色坐标系X轴的角度和角色坐标系X轴与世界坐标X轴角度的和。



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432495.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用java程序for循环打印菱形_编写Java程序,应用for循环打印菱形、三角形

//输出三角形//右上for(int m 1; m < 10; m){for (int n 1; n < m; n){System.out.print("*");}System.out.println();}//右下(1)for(int m 1; m < 10; m){for (int n 10; n > m; n--){System.out.print("*");}System.out.println();}//右…

java中CardLayout的使用方法

import javax.swing.*;import java.awt.*; import java.awt.event.*;public class Card extends JFrame{/** JFrame的布局管理器是BorderLayout*/JPanel p;//位于中心区域的面板JButton b1,b2,b3,b4;//位于南部区域的四个按钮JLabel l1,l2,l3,l4;CardLayout c;//设置面板p的布局…

深入浅出UE4网络

UE4中的官方文档结构比较混乱&#xff0c;且有部分错误&#xff0c;不方便学习。笔者试图通过本文&#xff0c;整理出一篇关于UE4网络的文章&#xff0c;方便朋友们对UE4中的网络同步部分的认识&#xff0c;并有进一步理解。如有讲得不清楚明白的地方&#xff0c;还望批评指正。…

java载屁股针_以前常打的“屁股针”,为何现在很少见了?医生告诉你真实原因...

打屁股针应该是每个人的童年噩梦&#xff0c;还记得小时候到医院打针&#xff0c;医生的手还没碰到裤子&#xff0c;就感觉屁股发麻&#xff0c;忍不住拔腿就跑&#xff0c;最终还是被家长逮住&#xff0c;夹在大腿间固定住&#xff0c;防止逃跑&#xff0c;于是在哭喊声中迎来…

Windows中查找文件被何进程使用

这篇文章记录在对文件/文件夹删除、更改&#xff0c;移动时&#xff0c;Windows弹窗提示正在被某程序使用&#xff0c;但又不给出进程名的问题。 方法一、 在任务管理器中&#xff0c;切换到性能项&#xff0c;有一个资源管理器&#xff0c;如下&#xff1a; 进入资源管理器&am…

UE4 多人联机显示每个人的playid

目的&#xff1a;在多人联机模式下&#xff0c;在每个pawn的上方显示textrender&#xff0c;并且在textrender里显示每个pawn的playerid 下面以一个listen server和两个client的方式测试。 1. 创建一个带有textrender的actor&#xff0c;并且勾选其replicated开关 2. 在Chara…

java编写代码时易出错_写Java程序最容易犯的错误有哪些呢?

1。Duplicated Code代码重复几乎是最常见的异味了。他也是Refactoring的主要目标之一。代码重复往往来自于copy-and-paste的编程风格。与他相对应OAOO是一个好系统的重要标志。2。Long method它是传统结构化的“遗毒”。一个方法应当具有自我独立的意图&#xff0c;不要把几个意…

TSubclassOf

在蓝图或C层面调用SpawnActor创建一个actor对象&#xff0c;或者调用SpawnActorDeferred 延迟创建一个actor对象时&#xff0c;都需要一个class类型的参数。 如果在C层面&#xff0c;对象类型是我们自己在蓝图里做的蓝图类&#xff0c;那么C层面需要得到蓝图类型。做法如下&am…

java 二进制as_Java中的二进制文本

这是我的(在Java 8上可以正常工作)&#xff1a;String input "01110100"; // Binary input as StringStringBuilder sb new StringBuilder(); // Some place to store the charsArrays.stream( // Create a Streaminput.split("(?<\\G.{8})") // Spl…

套接字结构汇总

unix域套接字 sockaddr_un{ unsigned char  sun_len; sa_family_t  sun_family; char      sun_path[104]; } 转载于:https://www.cnblogs.com/wzf365/p/3819438.html

蓝图中实现人物移动1

从Character继承一个蓝图类并编写下面代码1.得到前后移动的方向向量2.得到左右移动的方向向量3. 实现前后移动事件4. 实现左右移动事件5. 实现鼠标左键改变视角和移动方向

Java写一个快速排序_java实现快速排序

以上为思路。总的来说&#xff0c;快速排序也是利用了分治法的思想。基本步骤&#xff1a;1.先选择好合适的主元pivot&#xff0c;2.然后再把比主元小的元素放到主元的左边(右边)&#xff0c;把较大的元素放到主元的右边(左边)&#xff0c;3.接着再以主元为分界点&#xff0c;把…

python批量操作Linux服务器脚本,ssh密码登录(执行命令、上传、下载)(一)...

1 #-*- coding: utf-8 -*-2 #批量操作linux服务器&#xff08;执行命令&#xff0c;上传&#xff0c;下载&#xff09;3 #!/usr/bin/python4 import paramiko5 import datetime6 import os7 import threading8 def ssh2(ip,username,passwd,cmd):9 try:10 paramiko…

解密ControlRotation与ActorRotation

在实现角色移动时&#xff0c;我们是通过获取当前角色向前或者向后移动的向量来计算具体的移动步长&#xff0c;进而增量设置角色位置以达到使角色移动的目的。但是获取向前或者向后的向量得先知道当前角色在世界坐标系中旋转的角度&#xff0c;于是我们就在ControlRotation和A…

llinux下kvm虚拟化

原理就是本来可能要10台物理机完成的事现在只要5台&#xff0c;分别在每台物理机上虚拟一台&#xff0c;这5太虚拟机共享一个stronge&#xff0c;比如有一台物理机down掉后或是要做维护&#xff0c;我们可以把它上面的虚拟机牵走&#xff0c;从而减少损失或防止终端业务&#x…

系统会自带java吗_使用eclipse自带制作帮助系统

①help的api的生成1&#xff1a;项目中的生成javadoc或右击项目的导出&#xff0c;成javadoc格式。2&#xff1a;找打jdk中的Javadoc位置。如果忘记可以同cmd窗口通过指令寻找jdk位置&#xff0c;还可以直接再我的电脑中搜索javadoc。查找Javadoc.exe路径位置&#xff0c;填入j…

UE4 左右立体参数

在编辑器的editor preferences里设置下面参数

java arraylist范围_Java常见集合之ArrayList深入分析

1 /*2 继承自AbstractList&#xff0c;实现了List、RandomAccess、Cloneable、Serializable接口3 1)RandomAccess接口&#xff1a;用来快速随机存取&#xff0c;在实现了该接口后&#xff0c;用普通for来遍历&#xff0c;性能更高4 2)Cloneable接口&#xff1a;实现了该接口&am…

UE4 多个static mesh合并成一个static mesh

第一种方法&#xff1a; 1. 把需要合并的所有的static mesh导入到一个level中&#xff0c;static mesh导入到level中后&#xff0c;会自动变成static mesh actor 2. 在level的world outliner面板把选中需要合并的所有的static mesh actor 3. 鼠标右键&#xff0c;在弹出的快…

在UE中自由绘制基本图元的几种方法

1. 在UMG中可以使用UWidgetBlueprintLibrary类来绘制&#xff0c;UWidgetBlueprintLibrary类提供了一系列的静态函数可以使用。但只提供了DrawLine&#xff0c;DrawLines&#xff0c;DrawBox&#xff0c;DrawText&#xff0c;DrawTextFormatted函数&#xff0c;如果要自己绘制的…