一个在Roblox上的Lua脚本,可以将模型向上移动?

我有一个名为door的模型 里面有一个命名为Open的BoolValue 我有一个名为Top的模型,其中有所有被命名为Work Mabey Comeon和Proboblynot的门块 我有一个当被触摸时应该使Top向上移动的Block

直接在门内部,我有这个脚本

`` ` door = script.Parent open = door.Open Top = door.Top

opener = 18 speed = 100 steps = speed

startl = Top.CFrame

function MoveDoorToCFrame(cfrm,dr) dr.Work.CFrame = cfrm dr.Mabey.CFrame = dr.Work.CFrame * CFrame.new(0,-7.2,0) dr.Comeon.CFrame = dr.Work.CFrame * CFrame.new(0,10.8,0) dr.Problynot.CFrame = dr.Work.CFrame * CFrame.new(0,10.8,0) end

function Update() 如果速度/步数<0.5,则 calc = 1-math.cos(math.rad((-90/速度)步数2)) 否则, calc = 1+math.sin(math.rad((90/速度)*((速度/2)-步数)2)) 结束 MoveDoorToCFrame(startl * CFrame.new(0,(calc/2)打开器,0),Top) 结束

更新() 而真实存在的话,做 等待() 如果不打开价值和步骤小于速度,则 步骤=步骤+ 1 更新() 否则,如果打开价值并且步骤> 0,则 步骤=步骤-1 更新() 结束 `` `

在应该在触摸时激活的按钮中,我有

`` ` script.Parent.Touched:connect(function() script.Parent.Parent.Open.Value=not script.Parent.Parent.Open.Value end)

script.Parent.Parent.Open.Changed:connect(Update) 更新() `` `

如果你知道如何解决这个问题,那将不胜感激。

点赞
用户3238931
用户3238931

这可以用来移动模型,尝试将类似这样的代码添加到你的代码中。它更加动态。

a = Workspace.Model

for i=0.1,40 do
    for i,v in pairs(a:getChildren()) do
        if v:IsA("Part") then
            v.CFrame = CFrame.new(v.CFrame + Vector3.new(0,0.1,0))
        else print("Not a part")
        end
    end
end
2014-01-30 00:54:50
用户1938640
用户1938640

你的代码确实需要修修补补。

除非没有其他方法,否则你不应该使用无限循环来让你的代码工作。 相反,你应该基于事件来进行操作。

考虑使用以下代码:

结构:

门[模型]
    门脚本[脚本]
    按钮[零件]
    门开启[BoolValue]
    顶部[模型]
        可能[零件]
        来吧[零件]
        不可能[零件]

门脚本:

本地模型=脚本.Parent
本地门=模型.顶部
本地按钮=模型.按钮
本地门开启=模型.门开启

本地偏移=0
本地到达偏移=100
本地方向=1

本地步长=0.1

本地移动=false

函数启动移动()
    如果移动则返回
    移动=true
    当(门开启.Value 且 偏移不等于 到达偏移)或(not 门开启.Value 且 偏移不等于 0)时
        当前偏移=偏移
        偏移=数学.最大值(0,数学.最小值(到达偏移,偏移 + 步长 * (门开启.Value 且 1-1)))
        改变=偏移 - 当前偏移
        顶部: TranslateBy(Vector3.new(0,改变,0))
        等待()
    移动=false
结尾

启动移动()
门开启.Changed:connect(启动移动)

本地抵消=false
按钮.Touched:connect(function()
    如果抵消则返回
    抵消=true
    门开启.Value = not 门开启.Value
    等待(4)
    抵消=false
结尾)

你可能需要调整速度。

2014-02-22 17:08:33
用户8981489
用户8981489

这可能很困难。

除非高层管理人员解决这个问题,否则您可能需要寻找免费的模型。然而,我有一个脚本可以移动模型:

game.Workspace.Model:MoveTo(Vector3.new(0,0,0))
2017-11-21 18:27:26