【问题标题】:How do I CFrame parts?我如何 CFrame 零件?
【发布时间】:2011-03-21 04:39:39
【问题描述】:

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

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

不是将零件旋转 90 度和 45 度。我做错了什么?

【问题讨论】:

  • 您应该添加更多上下文。如果没有 roblox 标签,我将不知道您在说什么。此外,roblox 是来自不同公司的几种产品的名称。

标签: lua coordinate-systems 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)
        

        【讨论】:

          猜你喜欢
          • 2011-05-17
          • 2019-03-13
          • 2021-12-20
          • 2020-08-30
          • 2018-02-28
          • 1970-01-01
          • 1970-01-01
          • 2023-02-24
          • 1970-01-01
          相关资源
          最近更新 更多