0

所以我有一个函数叫做

function AngleToVector(speed,xAngle,yAngle,zAngle)

    local angle = Vector3.new(xAngle,yAngle,zAngle)

    --
    -- calculations
    --

    local position = Vector3.new(SOMETHING,SOMETHING,SOMETHING)
    return position

end

我决定重写整个问题。在图片中,sqrt(27) 是子弹在一秒钟内移动的距离。假设我知道指示这条线指向的 3 个角度。我正在尝试使用我的“速度”标量和我的 3 个角度来显示我的标量方向的 3 条红色绿色和蓝色虚线的长度。

在此处输入图像描述

4

2 回答 2

0

velocityVector = CFrame.Angles(xAngle,yAngle,zAngle).lookVector*speed

大概就是你想要的。CFrame.lookVector给你卢克所说的单位向量。当你习惯了CFrame后,一切都会变得容易得多。

于 2015-10-21T18:57:45.240 回答
0

您声明返回的最终 Vector3 应包含受试者应踏入以达到一定速度的值。这实际上非常简单。返回的 Vector3 应该是角度向量乘以速度标量的单位向量。

这更像是一个数学问题而不是编程问题,而且我对您使用的库不熟悉,所以我会用数学方法回答它。首先,将角度向量的每个分量除以角度向量的大小。这为您提供了该方向的单位矢量(例如,该方向的 1 米)。将此单位向量乘以给定的速度,这将使您speed朝那个方向迈进。然后,您可以将此新矢量添加到要移动的对象的当前位置。

我建议阅读向量和矩阵。

于 2015-10-12T19:59:41.210 回答