FiveM 三维距离计算器
计算两组坐标之间的3D和2D距离。获取旅行时间估算和可直接使用的Lua代码。
点A
点B
此工具的用途
距离决定了标记何时绘制,交互何时可用,以及循环何时进入休眠。距离设置错误是脚本占用帧数过多的常见原因之一。此计算器给出两点间的3D和2D距离,并以性能开销最小的形式写出比较。
如何使用
- 步骤 1:
输入两个点,例如玩家位置和交互目标。
- 步骤 2:
对于有高度差的情况读取3D距离,仅考虑地面平面时读取2D距离。
- 步骤 3:
从中推导你的检测半径。标记距离20米,交互提示距离2米是常见模式。
- 步骤 4:
复制Lua代码行。它使用向量减法形式,比Vdist更快。
常见问题
我应该用#(a - b)还是Vdist?
使用#(a - b)。它是在Lua运行时的原生向量运算,而Vdist是游戏原生函数,每次调用都有开销。在每帧运行的循环中差异是可测量的。
什么时候使用2D距离?
当高度不重要时,例如覆盖建筑所有楼层的区域,或斜坡上的标记。使用3D距离时,楼上一层的玩家会掉出区域,这会被误认为是错误。
如何避免每帧进行距离检测?
使用两阶段循环。远离时休眠1000毫秒,只有当玩家进入外层半径时切换到0毫秒循环进行实际交互。仅此一项就能将大多数脚本的空闲时延迟从几毫秒降至接近零。
我可以比较平方距离吗?
可以,这样可以省去开平方运算。比较#(a - b)与平方阈值时,阈值也必须平方。只有在遍历大量实体的循环中这才是真正的优化,否则可读性更重要。