You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Roblox按钮点击未触发脚本:为何Activated事件无响应

Roblox按钮触发洪水脚本故障排查

以下是导致点击按钮后print("activated")未执行的常见原因及解决方法:

1. 事件类型与按钮类型不匹配

如果你的按钮是GUI按钮(比如TextButton/ImageButton),Activated事件并不适用——这个事件是给Tool、ProximityPrompt这类对象设计的。GUI按钮的点击事件应该用MouseButton1Click。

  • 修正:将script.Parent.Activated:Connect(...)替换为script.Parent.MouseButton1Click:Connect(...)

2. 脚本父级对象错误

确认脚本的父级确实是目标按钮。如果脚本被放在了Workspace、ServerScriptService等非按钮对象下,script.Parent指向的就不是按钮,自然无法触发点击事件。

  • 检查方法:运行游戏后,在Explorer面板中确认脚本的父级是否为你要点击的按钮。

3. 脚本运行环境错误

GUI按钮的点击逻辑需要在客户端环境执行:

  • 如果用的是Script(服务器脚本)放在GUI里,服务器无法直接监听客户端GUI的点击,需要通过RemoteEvent传递事件;
  • 正确做法是将脚本改为LocalScript,并放在按钮对象内部,或者StarterPlayerScripts/StarterGui的对应GUI层级下。

4. 按钮被遮挡

按钮上方可能存在其他GUI元素(比如透明的Frame),或者按钮的Active属性未开启,导致点击无法传递到按钮本身:

  • 检查按钮的Active属性是否为true;
  • 对比按钮与其他GUI元素的ZIndex值,确保按钮的ZIndex更高,避免被遮挡。

5. 目标对象不存在(低概率)

虽然你已经看到print("script activated")输出,但仍需确认water-flood对象确实存在于Workspace中。可以在脚本开头添加断言验证:

assert(game.Workspace:FindFirstChild("water-flood"), "Workspace中未找到water-flood对象")

修正后的示例代码

local water = game.Workspace["water-flood"]
assert(water, "Workspace中未找到water-flood对象")
local iteration = 0
print("script activated")

-- 针对GUI按钮的点击事件
script.Parent.MouseButton1Click:Connect(function()
    print("activated")
    while water.Size.Y <= 75 do
        iteration = iteration + 1
        water.Size = Vector3.new(534, iteration * 5, 326)
        print(iteration)
        print(iteration * 5)
        task.wait(5) -- 推荐用task.wait替代旧版wait函数
    end
    if water.Size.Y > 75 then
        task.wait(15)
        print("reload")
    end
end)

内容的提问来源于stack exchange,提问作者Miguel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 20:06:04