第 22 课：射线检测：造一台距离探测器

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

01 · 把探测器和墙放在同一高度
创建 Sensor：Size=2,2,2，Position=0,4,-4，Orientation=0,0,0，Anchored=true。
创建 TargetWall：Size=8,8,1，Position=0,4,-24，Anchored=true、CanQuery=true。
在 ServerScriptService 创建 DistanceProbe。

02 · 方向向量里也包含长度
先在纸上标出起点、方向和最大长度。
预测默认摆放下墙的近表面距离约为 19.5 studs，而不是墙中心距离 20。

03 · 过滤自己，并画出检查结果
将完整代码放入 DistanceProbe。
Play 后等约三秒，读取 Output 并观察辅助线。
测试时别站在 Sensor 与墙之间；否则它可能先检测到你的角色。

文件：03-script.luau
位置与用途：ServerScriptService > DistanceProbe · 完整脚本

04 · 碰撞与查询是不同开关
Stop 后把墙移到 X=20，重新 Play，应该没有命中墙。
把 MAX_DISTANCE 改为 10，墙仍在 20 studs 外时也不应命中。
若要测试 CanQuery=false，先把墙 CanCollide=false，再关闭 CanQuery。

05 · 用三种摆法验证你的预测
墙在正前方：命中 TargetWall。
墙移到一边：不命中它。
中间加箱子：先命中箱子，距离更短。

