开始之前
完成第 15 课。可以另存其项目为 Lesson16;也可按下方结构重新建立。
Roblox Studio · 第 16 课
用 LocalScript 和 Activated 制作可开关的提示面板,理解客户端界面的运行位置。
Course overview
上一课的界面会显示文字,这次让它回应你的操作。提示面板只影响自己,不需要让所有玩家跟着一起打开。
LocalScript 正适合处理这类个人界面。你会使用 Activated,让按钮能接收常见鼠标、触屏与手柄激活操作。
完成第 15 课。可以另存其项目为 Lesson16;也可按下方结构重新建立。
一个可展开和关闭的提示卡,按钮文字也随状态改变。
连续点击五次,每次只切换一次;Output 没有找不到对象的错误。

Learning route
每完成一小步,就测试一次。先说出你预计会看到什么,再用 Play 和 Output 检查,不用急着一次写完所有代码。
为了不依赖上一课面板的内部结构,本课把两个新对象直接放到 AdventureGui 下。原有 Panel 可以保留在左上角。
这段脚本从 StarterGui 复制到 PlayerGui 后执行。因此 script.Parent 指向这位玩家自己的 AdventureGui。
isOpen 是这张提示卡的状态。一次点击把它取反,再根据状态更新面板 Visible 和按钮 Text。
“我打开提示”只需要改变自己的屏幕,用本地脚本很合适。“我获得金币”会影响游戏规则,需要服务器确认。
300 像素宽的提示框在非常窄的屏幕上仍需检查。文字太长时,先缩短线索,而不是把字号压到看不清。
Step by step
为了不依赖上一课面板的内部结构,本课把两个新对象直接放到 AdventureGui 下。原有 Panel 可以保留在左上角。
在编辑状态就能看到提示框,但真正测试点击要用 Play。LocalScript 放在正确容器里运行,放在普通 Workspace Part 下通常不会按本课预期运行。
Step by step
这段脚本从 StarterGui 复制到 PlayerGui 后执行。因此 script.Parent 指向这位玩家自己的 AdventureGui。
WaitForChild 等待按钮和提示对象准备好。它不能修复拼写错误,HintButton 与 hintButton 仍是两个名字。

Step by step
isOpen 是这张提示卡的状态。一次点击把它取反,再根据状态更新面板 Visible 和按钮 Text。
把更新集中在 render 函数里,能减少“面板已关闭,按钮却还写着关闭”的不一致。事件只连接一次,不要在 render 里反复 Connect。
local gui = script.Parent
local button = gui:WaitForChild("HintButton")
local panel = gui:WaitForChild("HintPanel")
local isOpen = false
local function render()
panel.Visible = isOpen
if isOpen then
button.Text = "关闭提示"
else
button.Text = "提示"
end
end
button.Activated:Connect(function()
isOpen = not isOpen
render()
end)
render()
Step by step
“我打开提示”只需要改变自己的屏幕,用本地脚本很合适。“我获得金币”会影响游戏规则,需要服务器确认。
先记住这个边界,下一课会用两个客户端亲眼观察差别。不要因为 LocalScript 写起来方便,就把重要游戏记录都放进去。
Step by step
300 像素宽的提示框在非常窄的屏幕上仍需检查。文字太长时,先缩短线索,而不是把字号压到看不清。
如果点击没有反应,先检查是不是在 Play、按钮是否被别的界面遮住、LocalScript 是否报错。
Homework
写一条能帮助玩家行动、又不会直接泄露全部答案的提示。
让游戏开始时面板关闭,并确认按钮文字匹配。
用本地变量记录打开次数,只在 Output 显示,不影响服务器奖励。
Exit questions
提示卡属于当前玩家的个人界面,不需要改变全体玩家的状态。
更适合兼容常见触屏和手柄的按钮操作。
render 可能执行很多次,重复连接会让一次点击执行多个回调。
不能作为权威奖励,重要记录应该由服务器验证并修改。
Explore further
正文代码可以直接复制。先确认脚本类型、放置位置,以及这段代码是完整版本还是小实验;不要把同一脚本的多个版本叠加运行。界面参考图已标注来源,图中的对象名可能与本课不同,请以操作步骤为准。