如何通过按下 Surfacegui 上的按钮来打开 screengui 中的框架?

问题描述 投票:0回答:1

我正在 roblox studio 中的一台计算机上进行编码,其中显示器上有一个登录按钮,我希望当玩家点击该按钮时,它会出现在我的屏幕 GUI 中的一帧中。我一直在尝试不同的代码,但没有成功。 Mt最近的脚本是一个脚本。 (我尝试了该代码的本地脚本和普通脚本都不起作用。)该脚本位于 SurfaceGUI 的按钮中。

local MyButton = script.Parent
local frame = game.StarterGui.ScreenGui.Frame

MyButton.MouseButton1Click:Connect(function()
    frame.Visible = true
end)

the hierarchy of the StarterGui.

我尝试编写代码,当按下按钮时,它会使框架可见。

lua roblox
1个回答
0
投票

根据 StarerGui 文档 :

Player.Character 重生时,其 PlayerGui 的内容会被清空。然后,StarterGui 的子级及其后代将被复制到 PlayerGui 中。

您的按钮未出现的原因是您正在修改仍在 StarterGui 中的模板 UI,而不是您的用户在 PlayerGui 中实际看到的 UI。

因此,要解决此问题,只需更新 PlayerGui 中的框架路径即可。在您的 LocalScript 中,执行以下操作:

local Players = game:GetService("Players")

local MyButton = script.Parent
local frame = Players.LocalPlayer.PlayerGui.ScreenGui.Frame

MyButton.MouseButton1Click:Connect(function()
    frame.Visible = true
end)
© www.soinside.com 2019 - 2024. All rights reserved.