我听说您可以使用该.CFrame
属性将零件倾斜精确的量。但是,我不清楚如何使用它。以下代码不起作用:
Workspace.Part.CFrame = CFrame.new(90,0,45)
它不会将零件旋转 90 度和 45 度。我究竟做错了什么?
我听说您可以使用该.CFrame
属性将零件倾斜精确的量。但是,我不清楚如何使用它。以下代码不起作用:
Workspace.Part.CFrame = CFrame.new(90,0,45)
它不会将零件旋转 90 度和 45 度。我究竟做错了什么?
首先,使用 CFrame.fromEulerAnglesXYZ 函数创建一个指向您希望的方向的新 CFrame。然后,使用 Vector3 数学将 CFrame 移动到所需位置。例如。
local cframe = CFrame.fromEulerAnglesXYZ(XRADIANS, YRADIANS, ZRADIANS)
cframe = (cframe - cframe.p) + Vector3.new(XPOS,YPOS,ZPOS)
采用的参数指定位置,而不是旋转
该文档指出,采用 3 个参数的坐标框架 (CFrame)构造函数正在定义位置偏移量。因此,您的示例代码将沿x轴移动部件 90,沿z轴移动部件45 。要在您尝试时执行旋转,请查看该CFrame.fromEulerAnglesXYZ
功能。
当我开始使用 CFrame 时,我也遇到了这个问题。它们是弧度,而不是度数。我已经写了一个关于 ROBLOX 的快速 Cframing 指南,在这里。
如果您在弧度方面遇到困难,您应该查看关于弧度的 ROBLOX wiki 页面以获得基本了解:wiki.roblox.com/index.php/Radians
谢谢!
-猪头10
-- 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)