【问题标题】:Reset "natural" orientation of part to 0,0,0 without moving it将零件的“自然”方向重置为 0,0,0 而不移动它
【发布时间】:2020-06-09 03:17:00
【问题描述】:

我从市场上下载了几个剑模型。然后,在工作区中,将它们全部定向(例如,手柄都在同一侧,刀片平地)。然后我将它们移到 ReplicatedStorage 中。稍后,我克隆它们并将它们放回工作区。 当他们返回工作空间时,他们又回到了原来的(即市场)方向。我必须在代码中再次旋转它们。

有没有办法重置零件/网格的“自然”方向?

我的意思是;

  1. 从市场创建或下载模型

  2. 旋转/变换到所需位置

  3. 执行“某事”,将方向重置为 0、0、0,而无需在视觉上旋转模型。

我希望这是有道理的!

【问题讨论】:

    标签: roblox


    【解决方案1】:

    假设您已将剑模型的PrimaryPart 设置为手柄。要更改 PrimaryPart 的 CFrame 以及模型中相对于它的所有其他部分,我们使用 :SetPrimaryPartCFrame() 函数

    sword:SetPrimaryPartCFrame(CFrame.new(0, 0, 0)) -- 0, 0, 0 as in X = 0, Y = 0, Z = 0
    

    现在,假设您对模型的方向不满意。我们可以通过将位置 CFrame 与方向 CFrame (CFrame.fromOrientation())“相乘”来解决此问题

    方向CFrames以弧度表示,所以为了将弧度转换为度数,我们使用math.rad()函数

    在此代码示例中,我们将位置设置为 0、0、0,将方向设置为 0、0、90

    sword:SetPrimaryPartCFrame(CFrame.new(0, 0, 0) * CFrame.fromOrientation(0, 0, math.rad(90)))
    

    剩下要做的就是尝试各种方向的 X、Y 和 Z 值,直到得到正确的结果

    【讨论】:

      猜你喜欢
      • 2022-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-22
      • 2020-07-16
      相关资源
      最近更新 更多