如何使工作区中的点击检测器在 StarterGui 中启用脚本? (罗布洛克斯工作室)

Posted

技术标签:

【中文标题】如何使工作区中的点击检测器在 StarterGui 中启用脚本? (罗布洛克斯工作室)【英文标题】:How do I make a click detector that is in workspace enable a script in StarterGui? (Roblox Studio) 【发布时间】:2021-07-27 09:13:04 【问题描述】:

我是一个脚本新手,我刚开始所以请非常具体地回答。我有一个模型(名为 SpawnBox),里面有一个点击检测器(名为 ClickDetector)。我在 StarterGui 中也有一个 Gui(名为 Gui)。这个 gui 内部有一个框架(名为 Frame),当前内部有一个 LocalScript(称为 LocalScript)。这个 LocalScript 现在被禁用了,那么如何使用我之前谈到的点击检测器启用脚本呢?提前致谢。

【问题讨论】:

【参考方案1】:

您可以创建一个普通脚本作为点击检测器的子级,并在其中执行以下操作:

-将点击检测器引用为script.Parent - 创建一个.MouseClick 函数,该函数是启用 LocalScript 的代码

.MouseClick功能化妆:<Click Detector>.MouseClick:Connect(function(player) end)

<Click Detector>.MouseClick 函数带有一个参数,即点击按钮的玩家(在game.Players 中)。现在您需要引用玩家的PlayerGui,因为这是每个玩家的 Gui 所在的地方,也是唯一可以更改他们及其属性的地方。由于参数引用了game.Players 中的播放器,因此您只需执行<player>.PlayerGui 即可获取PlayerGui。 (如果您运行游戏并单击浏览器选项卡中Players 旁边的箭头,则会弹出玩家列表或仅您自己的列表。然后单击您的玩家旁边的箭头,您将看到PlayerGui。如果进一步,您将看到名为 Gui 的 ScreenGui,如果再次单击,您将看到名为 Frame 的 Frame。此框架内是我们将启用的 LocalScript。

Disabled 是脚本的布尔值(truefalse)值属性。为了在 Lua 中引用属性,我们使用句点 .。一旦我们得到脚本,我们可以通过<LocalScript>.Disabled = false 来启用它。以下是您的代码结构应如下所示:

Define your Click DetectorOpen a .MouseClick function with a parameter for the player who clickedGet LocalScript by doing: local script = <player>.PlayerGui.Gui.Frame.LocalScriptEnable the script by doing: script.Disabled = falseend the .MouseClick function

更多帮助的链接:https://developer.roblox.com/en-us/api-reference/class/ClickDetectorhttps://developer.roblox.com/en-us/api-reference/class/PlayerGui

已编辑: 这里应该是资源管理器中脚本的层次结构:

点击检测器 └ 脚本

现在您的代码将如下所示:

local ClickDetector = script.Parent --Reference your Click Detector for use in the script

ClickDetector.MouseClick:Connect(function(player) --'player' is the player who clicked it
     local enableScript = player.PlayerGui.Gui.Frame.LocalScript --Reference your script through the game explorer by using dots '.'
     enableScript.Disabled = false --Sets the 'Disabled' property to false (meaning it's now enabled)
end) --Close the .MouseClick function

如果您在对象引用方面需要帮助,我建议您观看 AlvinBlox 的视频:https://www.youtube.com/watch?v=_K7stCkqFBY

【讨论】:

非常感谢,但脚本对我不起作用。请问能写出剧本吗?你解释得很好。 我已经编辑了我的答案。我希望它现在有帮助

以上是关于如何使工作区中的点击检测器在 StarterGui 中启用脚本? (罗布洛克斯工作室)的主要内容,如果未能解决你的问题,请参考以下文章

如何使 Workspace 中的零件可见并开始移动?

如何使 NSWindow 中的按钮在工作表上时可点击

如何在子视图移动期间使动画子视图中的按钮工作?

如何使安装了 CocoaPods 的 pod 可用于我工作区中的所有项目?

如何突出显示和检测 CSS 网格行上的鼠标点击?

在不同网站上的 iframe 中的路线更改时,检测外部点击无法正常工作