第 27 课：声音与粒子：给成功一个清楚的反馈

请先阅读对应网页。这里按章节提供代码，可能包含先后替换的实验版本，不要全部同时运行。
.luau 文件内容请复制到指定 Script / LocalScript / ModuleScript；.txt 是层级或说明，不是可执行代码。
第 25 课默认 PRACTICE=true，不连接云端，也不跨 Stop 保存。第 28 课包含明确标注的故意错误实验。

01 · 在同一个 Part 中整理效果
FeedbackPad：Size=6,1,6，Position=0,0.5,-10，Anchored=true。
添加 ProximityPrompt，ActionText=测试反馈、MaxActivationDistance=10。
添加 Attachment：BurstPoint，Position=0,2,0；在里面放 ParticleEmitter：Burst。
Burst.Enabled=false，Lifetime=0.5 到 0.8，Speed=4 到 6，SpreadAngle=45,45；Texture 可用内置 rbxasset://textures/particles/sparkles_main.dds。
在 FeedbackPad 内添加 Sound：SuccessSound，Volume=0.25，SoundId 先留空；再添加 Script：Feedback。

02 · 先准备不依赖声音的文字
阅读脚本中创建 BillboardGui 的部分。
文字先显示“准备好”，触发后改为“测试成功！”，一秒后恢复。

03 · Emit 一次，不让效果一直开着
粘贴完整脚本。
Play 后按提示，观察文字和短粒子。
有合适音频时再设置 SoundId，保持音量轻柔。

文件：03-script.luau
位置与用途：Workspace > FeedbackPad > Feedback（Script）

04 · 控制数量，比堆效果更重要
比较 Emit(10) 与 Emit(20)，选择能看清的一档。
把音量从 0.25 开始试，不用最大音量。
只在确认资源有权访问后设置 SoundId。

05 · 静音和快速重复都试一次
静音测试一次。
快速连按五次，确认反馈不无限叠加。
在设备模拟的较小视野中观察粒子是否挡住道路。

