UE4_相对于某一个Actor的夹角计算

6 篇文章 4 订阅
1 篇文章 0 订阅
本文探讨了在游戏开发中如何准确计算Actor之间的相对位置和角度,特别是在使用UE4时遇到的挑战。作者分享了常见的计算方法,解析了转换问题,并提供了正确处理World坐标与Actor坐标转换的解决方案。
摘要由CSDN通过智能技术生成

在游戏或者数字化应用的开发过程中,我们经常会用到ActorA相对于ActorB的位置或者角度的计算。

相对位置的计算有什么应用呢,如果你没遇到这个问题,你可能觉得这个东西不是个事。应该会很简单,但是当你遇到之后,不断的翻蓝图或者c++的API,翻了半天,连线半天或者撸半天代码,怅然若失地发现怎么不行呢。

关于ue4计算角度的方法,截图如下

方法1

在这里插入图片描述

方法2

在这里插入图片描述

方法3

在这里插入图片描述

当然以上方法可以帮助我们计算角度,前提是他们的参考系是World的原点,不是某一个Actor。

当然这时候是否想到了另外一个节点,世界位置与本地位置的转换
参考UE4_local location(本地位置) 与 world location(世界位置) 转换

在这里插入图片描述

以上方法Convert Transform to relative可以把传入的Actor1的转入到Actor1的相对坐标下,但是你要计算相对位置和相对角度,似乎又要周折一番,甚至是错误的,为什么这么说。

代码截图

在这里插入图片描述

在这里插入图片描述

Actor1的位置是(0,0,0),Actor2的位置是(-220,460,0),此时他们的角度结果是128。

在这里插入图片描述

如果把Actor2的位置调整为(-220,-460,0),此时的结果是44.9。

这个结果显然不是我们想要的结果,因此这两次的结果不一致,我们想要的相对位置或者说相对角度应该是一样大。

即便Actor2的位置发生变化,Actor1相对于Actor2的夹角应该是不变的。那么该如何去做呢?

代码截图

在这里插入图片描述

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值