ROBLOX Studio中如何让物体碰到特定的积木后消失?
How to make objects disappear when they touch certain bricks in ROBLOX Studio?
我正在尝试制作一个具有下落块水平的 obby,砖块下落很好,但我希望它们在接触特定块时消失,这样它们看起来就不会乱七八糟。有帮助吗?
假设每个掉落的部件都是新部件,当它被角色触摸时,你可以简单地摧毁它。
script.Parent.Touched:connect(function(hit)
if hit:FindFirstChild('Humanoid') then -- Check if it is a character that touched the part
script.Parent:Destroy()
end
end
已接受的答案不再有效,这对我有用:
script.Parent.Touched:connect(function(hit)
if hit.Parent:FindFirstChildWhichIsA('Humanoid') then -- Check if it is a character that touched the part
script.Parent:Destroy()
end
end
)
我想我知道出了什么问题。这是我的代码。
local block = script.Parent
local debounce = true
block.Touched:Connect(function(hit)
local humanoid = hit.Parent:FindFirstChildWhichIsA('Humanoid')
if humanoid and debounce == true then
debounce = false
block.Transparency = 0.5
wait(1)
block.Transparency = 1
block.CanCollide = false
wait(3)
block.Transparency = 0
block.CanCollide = true
debounce = true
end
end)
制作一个零件并命名为block,然后用上面的代码插入一个脚本就可以完美运行了。
(你可以多次复制粘贴“wait(1)”和“block transparency”,并把数字变小,让它更流畅。例子:
local block = script.Parent
local debounce = true
block.Touched:Connect(function(hit)
local humanoid = hit.Parent:FindFirstChildWhichIsA('Humanoid')
if humanoid and debounce == true then
debounce = false
block.Transparency = 0.1
wait(0.2)
block.Transparency = 0.2
block.CanCollide = true
wait(0.2)
block.Transparency = 0.3
block.CanCollide = true
wait(0.2)
block.Transparency = 0.4
block.CanCollide = true
wait(0.2)
block.Transparency = 0.5
block.CanCollide = true
wait(0.2)
block.Transparency = 0.6
block.CanCollide = true
wait(0.2)
block.Transparency = 0.7
block.CanCollide = false
wait(0.2)
block.Transparency = 0.8
block.CanCollide = false
wait(0.2)
block.Transparency = 0.9
block.CanCollide = false
wait(0.2)
block.Transparency = 1
block.CanCollide = false
wait(3)
block.Transparency = 0
block.CanCollide = true
debounce = true
请注意我如何将 CanCollide 值设置为 true 直到某个点。这很重要,因为: 一旦您触摸到方块,它就会消失,玩家没有机会跳跃。相反,它消失得足够晚,让玩家有时间做出反应。
我正在尝试制作一个具有下落块水平的 obby,砖块下落很好,但我希望它们在接触特定块时消失,这样它们看起来就不会乱七八糟。有帮助吗?
假设每个掉落的部件都是新部件,当它被角色触摸时,你可以简单地摧毁它。
script.Parent.Touched:connect(function(hit)
if hit:FindFirstChild('Humanoid') then -- Check if it is a character that touched the part
script.Parent:Destroy()
end
end
已接受的答案不再有效,这对我有用:
script.Parent.Touched:connect(function(hit)
if hit.Parent:FindFirstChildWhichIsA('Humanoid') then -- Check if it is a character that touched the part
script.Parent:Destroy()
end
end
)
我想我知道出了什么问题。这是我的代码。
local block = script.Parent
local debounce = true
block.Touched:Connect(function(hit)
local humanoid = hit.Parent:FindFirstChildWhichIsA('Humanoid')
if humanoid and debounce == true then
debounce = false
block.Transparency = 0.5
wait(1)
block.Transparency = 1
block.CanCollide = false
wait(3)
block.Transparency = 0
block.CanCollide = true
debounce = true
end
end)
制作一个零件并命名为block,然后用上面的代码插入一个脚本就可以完美运行了。 (你可以多次复制粘贴“wait(1)”和“block transparency”,并把数字变小,让它更流畅。例子:
local block = script.Parent
local debounce = true
block.Touched:Connect(function(hit)
local humanoid = hit.Parent:FindFirstChildWhichIsA('Humanoid')
if humanoid and debounce == true then
debounce = false
block.Transparency = 0.1
wait(0.2)
block.Transparency = 0.2
block.CanCollide = true
wait(0.2)
block.Transparency = 0.3
block.CanCollide = true
wait(0.2)
block.Transparency = 0.4
block.CanCollide = true
wait(0.2)
block.Transparency = 0.5
block.CanCollide = true
wait(0.2)
block.Transparency = 0.6
block.CanCollide = true
wait(0.2)
block.Transparency = 0.7
block.CanCollide = false
wait(0.2)
block.Transparency = 0.8
block.CanCollide = false
wait(0.2)
block.Transparency = 0.9
block.CanCollide = false
wait(0.2)
block.Transparency = 1
block.CanCollide = false
wait(3)
block.Transparency = 0
block.CanCollide = true
debounce = true
请注意我如何将 CanCollide 值设置为 true 直到某个点。这很重要,因为: 一旦您触摸到方块,它就会消失,玩家没有机会跳跃。相反,它消失得足够晚,让玩家有时间做出反应。