Roblox Studio中如何实现TextButton鼠标点击次数的精准统计?
原代码问题分析
- 在无限
while true循环中重复绑定UserInputService.InputEnded事件,每循环一次就新增一个事件监听器。点击鼠标时,所有已绑定的监听器都会触发,导致点击次数被多次累加,出现一次点击打印数十次的情况。 - 使用全局鼠标点击事件无法精准判断是否点击的是目标TextButton,会把其他区域的鼠标点击也统计进去。
- 回调里的
wait(0.5)无实际作用,还会导致线程挂起,加剧逻辑混乱。
修正后的代码
直接监听TextButton的专属点击事件,精准统计按钮点击次数:
-- 获取ScreenGui下的TextButton,替换成你实际的按钮路径 local textButton = script.Parent:WaitForChild("TextButton") local clicked = 0 -- 仅绑定一次按钮点击事件 local clickConnection = textButton.MouseButton1Click:Connect(function() clicked = clicked + 1 print("Clicked " .. clicked) -- 点击次数超过4时,断开事件连接停止统计 if clicked > 4 then clickConnection:Disconnect() end end)
代码说明
- 直接绑定TextButton的
MouseButton1Click事件,每次点击按钮只会触发一次回调,确保次数统计精准。 - 仅针对目标按钮统计,不会误算其他区域的鼠标点击。
- 点击次数达标后,通过
Disconnect()断开事件连接,替代原代码的无限循环逻辑,避免不必要的资源消耗。
内容的提问来源于stack exchange,提问作者Sudin
相关产品推荐
相关产品推荐

