时间:2010-07-26 16:29:35

标签: lua coordinate-systems roblox

5 个答案:

答案 0 :(得分:2)

首先,使用CFrame.fromEulerAnglesXYZ函数创建一个指向所需方向的新CFrame。然后,使用Vector3数学运算将CFrame移动到所需位置。 EG。

local cframe = CFrame.fromEulerAnglesXYZ(XRADIANS, YRADIANS, ZRADIANS)
cframe = (cframe - cframe.p) + Vector3.new(XPOS,YPOS,ZPOS)

答案 1 :(得分:1)

文档说明采用3个参数的Coordinate Frame (CFrame)构造函数定义了位置偏移量。因此,您的示例代码将沿着 x -axis移动部件90,沿着 z -轴移动部件90。要在尝试时执行旋转,请参阅CFrame.fromEulerAnglesXYZ功能。

答案 2 :(得分:1)

所采用的参数指定位置,而不是旋转

答案 3 :(得分:0)

当我开始使用CFrame时,我也遇到了这个问题。他们是RADIANS,而不是DEGREES。我已经写了一篇关于ROBLOX的快速CFraming指南,here

如果你正在努力研究弧度,你应该看看弧度上的ROBLOX维基页面以获得基本的理解:wiki.roblox.com/index.php/Radians

谢谢!

-pighead10

答案 4 :(得分:0)

-- Rotates the part by 90 degrees. If you want to change the axis your
-- rotating it on Use a different placement such as CFrame.Angles(math.rad(90),0,0)
Workspace.Part.CFrame = Workspace.Part.CFrame * CFrame.Angles(0, math.rad(90), 0)