我如何 CFrame 零件?
Posted
技术标签:
【中文标题】我如何 CFrame 零件?【英文标题】:How do I CFrame parts? 【发布时间】:2011-03-21 04:39:39 【问题描述】:我听说您可以使用.CFrame
属性将零件倾斜一个精确的量。但是,我不清楚如何使用它。以下代码不起作用:
Workspace.Part.CFrame = CFrame.new(90,0,45)
不是将零件旋转 90 度和 45 度。我做错了什么?
【问题讨论】:
您应该添加更多上下文。如果没有 roblox 标签,我将不知道您在说什么。此外,roblox 是来自不同公司的几种产品的名称。 【参考方案1】:首先,使用 CFrame.fromEulerAnglesXYZ 函数创建一个指向您希望的方向的新 CFrame。然后,使用 Vector3 数学将 CFrame 移动到所需位置。 例如。
local cframe = CFrame.fromEulerAnglesXYZ(XRADIANS, YRADIANS, ZRADIANS)
cframe = (cframe - cframe.p) + Vector3.new(XPOS,YPOS,ZPOS)
【讨论】:
【参考方案2】:文档指出,采用 3 个参数的 Coordinate Frame (CFrame) 构造函数定义了位置偏移量。因此,您的示例代码将沿 x 轴移动部件 90,沿 z 轴移动部件 45。要在您尝试时执行轮换,请参阅 CFrame.fromEulerAnglesXYZ
函数。
【讨论】:
【参考方案3】:参数指定位置,而不是旋转
【讨论】:
【参考方案4】:当我开始使用 CFrame 时,我也遇到了这个问题。它们是弧度,而不是度数。我写了一份关于 ROBLOX 的快速 CFrameing 指南,here。
如果您对弧度感到困惑,您应该查看关于弧度的 ROBLOX wiki 页面以获得基本了解:wiki.roblox.com/index.php/Radians
谢谢!
-pighead10
【讨论】:
您的指南链接不再有效。你能更新吗?【参考方案5】:-- 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)
【讨论】:
以上是关于我如何 CFrame 零件?的主要内容,如果未能解决你的问题,请参考以下文章