社区首页 >问答首页 >将向量A移动到向量B,但在到达矢量B之前停止X距离,并且总是在前面

将向量A移动到向量B,但在到达矢量B之前停止X距离,并且总是在前面
EN

Game Development用户
提问于 2021-03-08 01:40:55
回答 1查看 36关注 0票数 0

我相信这是基本的向量数学,但我在挣扎。

我有两个物体(3D空间,x,y,z),A(武器)和B(照相机)。我想把A移到B的位置,然后把A从B中偏移,这样它就总是在摄像机的视野中。

代码语言:javascript
代码运行次数:0
复制
endPosition = objA.worldPosition
startPosition = objB.worldPosition
distance = endPosition - startPosition

objA.worldPosition = distance

我如何抵消物体A,使它总是离B一定的距离,所以它就在视野中?

让你知道我在做什么。我有一个武器在世界上,玩家可以点击和检查修改从任何地方(没有固定的旋转或位置)。我想把这个武器移近相机,这样他们就可以把它转过来,添加附件等。现在,武器剪辑进入相机,所以我需要一个偏移。

EN

回答 1

Game Development用户

回答已采纳

发布于 2021-03-09 02:56:21

你可以使用归一化的distance矢量(实际上是一个direction矢量)来抵消武器在摄像机上方移动后的偏移。另外,作为第一步,在摄像机顶部移动武器并不需要distance矢量本身,您可以直接将相机位置分配给武器。

代码语言:javascript
代码运行次数:0
复制
direction = normalize(objA.worldPosition - objB.worldPosition) // get the direction between the camera and the weapon
objA.worldPosition = objB.worldPosition // move the weapon on top of the camera
objA.worldPosition = objA.worldPosition + direction * 10 // 10 is the number of 'units' you want to offset the weapon from the camera, you should decide this via trial and error
票数 1
EN
页面原文内容由Game Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://gamedev.stackexchange.com/questions/189691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文