Three.js如何存储方向

How does Three.js store direction?

本文关键字:存储 方向 js 何存储 Three      更新时间:2024-06-06

我正在为我和朋友们正在制作的游戏编写服务器。我想在一个变量中保持某个玩家在3D平面中观察的方向。我考虑把它做成一个有两个弧度变量的物体,即垂直角和水平角。但我的朋友告诉我用Three.js存储的方式存储它,因为这会让他的生活更轻松。有人能帮我吗?

您应该复习游戏开发者数学系列:https://www.youtube.com/watch?v=sKCF8A3XGxQ&list=PLW3Zl3wyJwWOpdhYedlD-yCB7WQoHf-My&索引=1

具体来说,使用向量。您应该将角色或实体的方向/朝向角度存储为Vector3或三维向量。在THREE.js中,这是新的THREE。Vector3(x,y,z)

要获得对象A到对象B的方向,相对于A,您可以执行以下操作:

var direction = posB.clone().sub( posA )

这个克隆位置B,这样我们就不会用减法把它搞砸,然后立即用A减去。

但是,您会注意到向量现在有一些长度。这在计算中通常是不可取的,例如,如果你想把这个方向乘以其他东西,比如推力。在这种情况下,我们需要归一化向量:

direction.normalize()

现在你可以做一些有趣的事情,比如:

posA.add( direction.clone().multiplyScalar( 10.0 ) );

这将使posA朝着posB的方向移动,10个空间单位。