没有使用任何marker实体/记分板/nbt
只用了3个指令 1个函数(其中一个指令是可以省略的)
- #chyx:ray
- execute unless entity @s[distance=..6] run say none
- execute if entity @s[distance=..6] if block ~ ~ ~ stone run say 1
- execute if entity @s[distance=..6] unless block ~ ~ ~ stone offset ^ ^ ^0.005 run function chyx:ray
原理很好懂 就是如果检查距离超过了6格 那么放弃 并且输出none
如果发现石头 那么就停止 并且输出1
如果仍未发现 那么往前进0.005(可自行在速度和准确度上决定)
当然 如果你不需要输出none 那么第一个指令可以省掉的
当然咯 因为玩家的眼睛离他的原点有一些距离
游戏里使用的时候应该输入execute as @a at @s offset ~ ~1.62 ~ run function chyx:ray(由命令方块时)
或者execute offset ~ ~1.62 ~ run function chyx:ray(聊天栏) |