C-Frame 滑动门在 Roblox Studio 中的脚本。

由于脚本的复杂性和我的能力,我目前在流行的 MMO 游戏 "Roblox" 中无法创建一个滑动门,已经自动和手动分析过脚本,也没有发现任何错误。以下是脚本:

local Part = workspace.Part
local newPos = Part.Position + Vector3.new(-61.866, 8.551, -97.181)
local Time = 5
local Increment = 0.5
local Debounce = false

local Diff = newPos - Part.Position
local Mag = Diff.magnitude
local Direction = CFrame.new(Part.Position, newPos).lookVector

function MovePart()
if Debounce then return end
    Debounce = true
    for n = 0, Mag, Increment do
        Part.CFrame = Part.CFrame + (Direction * Increment)
        wait( (Time/Mag) * Increment )
    end
    Debounce = false
end

workspace.Button.ClickDetector.MouseClick:connect(MovePart)

当我插入具有 Clickdetector 的按钮并尝试点击按钮时,没有显示任何结果-甚至没有错误!我陷入了困境,需要帮助。非常感谢。

点赞
用户5472431
用户5472431

嗯,对我有效。

它是否已经在 (-61.866, 8.551, -97.181) 处?

是否还有另一个“零件”或“按钮”?

它是否没有固定并且有物体挡住了?

替代方案:

将按钮、零件和以下脚本放在一个模型中。

local Part = script.Parent.Part
local Button = script.Parent.Button
Part.Anchored = true
local Direction = Part.CFrame.lookVector
local Mag = Part.Size.Z

local Time = 5
local Increment = 0.5 -- 较小的值使“移动”更加平滑
local Debounce = false

function MovePart()
if Debounce then return end
    Debounce = true
    for n = 0, Mag, Increment do
        Part.CFrame = Part.CFrame + (Direction * Increment)
        wait(Time/(Mag * Increment))
    end
    for n = 0, Mag, Increment do
        Part.CFrame = Part.CFrame + (Direction * -Increment) -- 以便移回
        wait(Time/(Mag * Increment))
    end
    Debounce = false
end

clickD = Button.ClickDetector or Instance.new("ClickDetector",Button)
clickD.MouseClick:connect(MovePart)

希望有所帮助。

2015-10-21 19:36:47
用户6100270
用户6100270

所有你要做的就是放置一个部件在工作区中,将它重命名为“Button”,并且在这个部件中插入一个 clickDetector(点击探测器)。

2016-03-22 17:47:31