Vector3

三维向量类型,支持数学运算与操作符重载。与 脚本内存 API 总览 中列出的 joaatscript_global 等同属一组常用类型。

Vector3.new(x?, y?, z?)Vector3

创建 Vector3。不传参数时为 (0, 0, 0);可只传部分分量。

参数类型说明
x, y, zfloat?各分量;均为可选
local v = Vector3.new(100, 200, 50)
log.info(v.x .. ", " .. v.y .. ", " .. v.z)

字段

字段类型说明
xfloatX 分量 (可读写)
yfloatY 分量 (可读写)
zfloatZ 分量 (可读写)

操作符

操作符示例说明
+v1 + v2向量相加
-v1 - v2向量相减
*v * 2.0标量缩放
/v / 2.0标量除法
- (unary)-v取反
==v1 == v2相等比较
tostringtostring(v)格式化输出

方法

:length()float

返回向量长度 (模)。

:length_squared()float

返回长度的平方,避免开方运算,适合距离比较。

:distance(other)float

返回到另一个 Vector3 的距离。

参数类型说明
otherVector3另一个向量
:dot(other)float

点积。

参数类型说明
otherVector3右操作向量
:cross(other)Vector3

叉积,返回新的 Vector3。

参数类型说明
otherVector3右操作向量
:normalize()Vector3

返回归一化后的单位向量。零向量返回 (0, 0, 0)。

-- 完整示例
local a = Vector3.new(100, 200, 50)
local b = Vector3.new(110, 210, 60)
local dist = a:distance(b)
local dir = (b - a):normalize()
local scaled = a * 2.0
log.info(tostring(dir))  -- "Vector3(0.5774, 0.5774, 0.5774)"