[UE4]让箭头保持水平的第二种方法:Combinrotators、Delta(Rotator)
一、手柄在世界坐标系中有一个绝对朝向,我们可以知道箭头相对于手柄的朝向,相对于手柄的旋转角度。
可以通过手柄绝对朝向、箭头的相对于手柄的朝向计算得到箭头的绝对朝向。
在得到箭头的相对于手柄的角度,在这个角度的基础上,再旋转一个手柄在世界坐标系中的绝对角度,就可以得到箭头在世界坐标系中的绝对角度。
两个旋转角度叠加,可以使用UE4引擎提供的Combinrotators函数。


Delta(Rotator):一个对象的朝向本来是A,然后给定B朝向,让这个对象朝着B朝向相反的方向旋转,旋转的角度跟B的角度一样,只不过是跟B角度方向相反。

Delta(Rotator)相当于角度减法,Combinrotators相当于角度加法。
注意:如果使用世界坐标系设置箭头旋转(SetWorldRotation),那么箭头可以在任何一个层级结构,不一定需要在FP_Gun节点下面,也可以在根节点下面。

[UE4]让箭头保持水平的第二种方法:Combinrotators、Delta(Rotator)的更多相关文章
- iOS 清理缓存功能的实现第二种方法
/** * 清理缓存第二种方法 * * @param sender <#sender description#> */ - (void)clearCache:(id)sender { // ...
- 二、用Delphi10.3 创建一条JSON数据的第二种方法,并格式化输出
一.用Delphi10.3构造一个JSON数据的第二种方法,并格式化输出,代码如下: uses //System.JSON, System.JSON.Types, System.JSON.Writer ...
- 今天我们要说的画一个三角形,恩,画一个三角形,第一种呢是利用我们的html标签结合css来实现;而第二种方法就就是我们的html5新增的一个标签canves,这个canves就是网页画幕,那么顾名思义就是在网页里建造一个画板,用来画画,好,那接下来就和我一起去看看吧!
第一种方法:利用我们的html标签结合css来实现 span{ width:0px; height:0px; border-width:7px; border-style:solid; border- ...
- 10、一个action中处理多个方法的调用第二种方法method的方式
在实际的项目中,经常采用现在的第二种方式在struct.xml中采用清单文件的方式 我们首先来看action package com.bjpowernode.struts2; import com.o ...
- [UE4]让箭头保持水平
如图所示,当手柄前后左右转动的时候,箭头也会跟着转动,我们的目标是要求箭头紧贴着地面,不会跟着手柄前后左右转动. 分析上图坐标系可以知道,只要让箭头绕着Z轴转动就可以了,不需要绕着X轴和Y轴旋转.
- 解决Eclipse中编辑xml文件的智能提示问题,最简单的是第二种方法。
Eclipse for Android xml 文件代码自动提示功能,介绍Eclipse 编辑器中实现xml 文件代码自动智能提示功能,解决eclipse 代码提示失效.eclipse 不能自动提示. ...
- 未知宽高div水平垂直居中3种方法
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head&g ...
- css中元素水平垂直居中4种方法介绍
table-cell轻松设置文本图片水平垂直居中 让一个元素垂直居中的思路:把这个元素的容器设置为table-cell,也就是具有表格单元格的特性,再使用vertical-align(这个属性对blo ...
- 关于我在17号“一个查询任意年份中任意月份的天数”程序编写中的代码&第二种方法!
PS:下面的代码是我对于17号的练习题的一些新的看法(其实就是从另一个角度思考问题) package day20180917;import java.util.Scanner;//导包public c ...
随机推荐
- servlet之ServletRequest与ServletResponse (三)
·servlet的service()方法用于应答请求:每次请求都会调用service()方法 public void service(ServletRequest arg0, ServletRespo ...
- H5中用postMessage传递数据,解决localStorage不能跨域问题
localStorage不能跨域,所以在A域名下用localStorage.YourKey方式存储的值,在B域名下是不能取到的. 所以需要转变思路,目前主要使用的两种方式: 一种方式:在A.B两个页面 ...
- WEB学习笔记6-正确闭合HTML标签
自闭合标签(空元素,即不能包含任何内容,这些元素对应的HTML标签成为自闭合标签) area/base/br/col/command/embed/hr/img/input/keygen/link/me ...
- [亲身实践]linux命令行下配置网路
1.在命令行下输入setup, 2.之后出现下图,选择网络配置 4.配置IP地址,子网掩码,DNS 5.保存之后回到命令行模式下,输入service network restart,至此网络配置完成
- sqlalchemy关于时间的数据类型
#导入模块 from sqlalchemy import Column, Integer, String, Date, create_engine from sqlalchemy.ext.declar ...
- DoTween之队列
//引用命名空间 using DG.Tweening; // 初始化一个sequence Sequence sequence = DOTween.Sequence(); //添加动画 sequence ...
- 改变highCharts的X轴和Y轴的数据刻度
xAxis:{ tickPixelInterval:10 //自行调整X轴刻度的间距}, yAxis:{ lineWidth:1, //Y轴默认不显示Y轴线,添加一个轴线的宽度就可以显示出来 tick ...
- javascript之网页跑马灯
---恢复内容开始--- <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- 【bug记录】OS Lab3 踩坑记
OS Lab3 踩坑记 Lab3在之前Lab2的基础上,增加了进程建立.调度和中断异常处理.其中测试包括进程建立以及进程调度部分. 由于是第一次做bug记录,而且是调试完bug后再做的记录,所以导致记 ...
- auto-encoder小记
1.使用auto-encoder生成手写数字 2.中间code层使用二维向量,使用L2norm处理中间层数据 3.从[-1,1]的矩形框中等间隔选取100个坐标点 作为code值 最终生成图像 后期应 ...