如何同时转动和移动Roblox对象的CFrame

我有一个圆形的Vfx效果围绕着玩家,需要在技能使用期间旋转5秒。我已经用焊接约束将2个命中框和另一个vfx网格焊接在一起,以便它们可以一起随玩家转动和移动。

现在,我基本上尝试设置模型的位置为玩家位置,并通过乘以CFrame.Angles(0,math.rad(1) dt 1000,0)来旋转它,这个方法有用但是不会一起移动所有合并的部分。为了一起移动,文档中说我需要直接修改CFrames。

所以我正在尝试这样做

local connection=game:GetService("RunService").Heartbeat:Connect(function(dt)
    position=playerCharacter.HumanoidRootPart.Position
    clone1.effect.CFrame=CFrame.new(position)
    lastRotationCFrame=clone1.effect.CFrame-clone1.effect.CFrame.Position
    clone1.effect.CFrame = clone1.effect.CFrame  * lastRotationCFrame * CFrame.Angles(0,math.rad(1)*dt*1000,0)
end)

(位置和playerCharacter在外部作用域中定义)

这个脚本成功使我的vfx模型跟随玩家,但它不会旋转。实际上,它在每帧上都会旋转一些,但因为我使用CFrame.new(position)来重新定位模型,它会重置旋转,看起来就像是卡住了。

我尝试记住最后旋转的值,并将其应用于新的CFrame,但也没有成功。

你能告诉我如何旋转模型并移动模型与玩家,而不破坏任何焊接约束吗?

原文链接 https://stackoverflow.com/questions/70092768

点赞