0

我听说您可以使用该.CFrame属性将零件倾斜精确的量。但是,我不清楚如何使用它。以下代码不起作用:

Workspace.Part.CFrame = CFrame.new(90,0,45)

它不会将零件旋转 90 度和 45 度。我究竟做错了什么?

4

5 回答 5

2

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

local cframe = CFrame.fromEulerAnglesXYZ(XRADIANS, YRADIANS, ZRADIANS)
cframe = (cframe - cframe.p) + Vector3.new(XPOS,YPOS,ZPOS)
于 2010-08-03T18:03:49.493 回答
1

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

于 2010-09-10T21:13:33.830 回答
1

该文档指出,采用 3 个参数的坐标框架 (CFrame)构造函数正在定义位置偏移量。因此,您的示例代码将沿x轴移动部件 90,沿z轴移动部件45 。要在您尝试时执行旋转,请查看该CFrame.fromEulerAnglesXYZ功能。

于 2010-07-26T18:35:37.640 回答
0

当我开始使用 CFrame 时,我也遇到了这个问题。它们是弧度,而不是度数。我已经写了一个关于 ROBLOX 的快速 Cframing 指南,在这里

如果您在弧度方面遇到困难,您应该查看关于弧度的 ROBLOX wiki 页面以获得基本了解:wiki.roblox.com/index.php/Radians

谢谢!

-猪头10

于 2010-11-22T19:51:14.837 回答
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)
于 2014-03-01T19:13:29.543 回答