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

如何在Roblox Studio中点击SurfaceGui按钮打开ScreenGui中的Frame

解决Roblox Studio点击SurfaceGui按钮显示ScreenGui Frame的问题

原代码的核心问题

  • 直接修改game.StarterGui里的Frame无效,StarterGui只是GUI的初始模板,玩家进入游戏后,StarterGui的内容会复制到玩家的PlayerGui中,只有修改PlayerGui内的元素才会在玩家屏幕上生效。
  • 必须使用本地脚本(LocalScript),普通脚本无法在客户端处理GUI交互事件,所以脚本类型要改成LocalScript并放在SurfaceGui的按钮内。

正确代码实现

local MyButton = script.Parent
-- 获取当前玩家的PlayerGui
local player = game.Players.LocalPlayer
local playerGui = player.PlayerGui
-- 定位到PlayerGui里的目标Frame
local frame = playerGui.ScreenGui.Frame

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

额外检查项

  • 确认StarterGui里的ScreenGui和Frame存在,且Frame的初始Visible属性设为false。
  • 检查SurfaceGui的Adornee属性已正确绑定到虚拟电脑显示器部件,且SurfaceGui的Enabled为true。
  • 确保按钮的Active和Visible属性都为true,保证玩家可正常点击。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 23:23:09