UMath
数学
用于数学计算枚举列表
UMath.Axis
- 描述: 坐标轴
| 成员名称 | 成员说明 |
|---|---|
| X_Axis | X轴 |
| Y_Axis | Y轴 |
| Z_Axis | Z轴 |
函数列表
GetVectorLength
-
描述: 获取向量长度
-
描述: 获取向量的长度,返回的结果是一个数值。
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| vec | Engine.Vector | 向量 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| lenth | number | 向量长度 |
UMath:GetVectorLength(Engine.Vector(20,100,500))GetNormalize
-
描述: 获取向量归一化结果
-
描述: 将一个向量归一化为一个标准向量。
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| vec | Engine.Vector | 向量 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| result | Engine.Vector | 返回的标准向量 |
UMath:GetNormalize(Engine.Vector(30,20,50))GetDistance
-
描述: 获取两点间的距离
-
描述: 以两点间的距离值进行返回。
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| v1 | Engine.Vector | 向量1 |
| v2 | Engine.Vector | 向量2 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| result | number | 距离 |
UMath:GetDistance(Engine.Vector(100,200,300),Engine.Vector(200,300,500))GetPointToPoint
-
描述: 获取两点间的方向
-
描述: 以两点间的方向进行返回。
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| point1 | Engine.Vector | 点1 |
| point1 | Engine.Vector | 点2 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| result | Engine.Vector | 方向 |
UMath:GetPointToPoint(Engine.Vector(100,200,300),Engine.Vector(200,300,500))GetVectorRotate
-
描述: 获取方向旋转指定角度后的方向
-
描述: 计算出按指定坐标轴旋方向转指定角度后的向量并返回。
-
描述: 任意轴:{name = “X轴”, key = “X_Axis”},
-
描述: {name = “Y轴”, key = “Y_Axis”},
-
描述: {name = “Z轴”, key = “Z_Axis”}
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| vec | Engine.Vector | 向量 |
| axis | Math.Axis | 坐标轴 |
| angle | number | 角度 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| result | Engine.Vector | 旋转后的向量 |
UMath:GetVectorRotate(Engine.Vector(300,200,100),UMath.Axis.X_Axis,90)GetVectorAngle
-
描述: 获取方向之间的夹角
-
描述: 以两点间夹角的值进行返回。
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| vec1 | Engine.Vector | 向量1 |
| vec2 | Engine.Vector | 向量2 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| result | number | 夹角 |
UMath:GetVectorAngle(Engine.Vector(300,200,100),Engine.Vector(100,100,500))GetVectorCross
-
描述: 计算向量的叉乘
-
描述: 计算两个向量的叉乘并返回。
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| vec1 | Engine.Vector | 向量1 |
| vec2 | Engine.Vector | 向量2 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| result | Engine.Vector | 计算结果 |
UMath:GetVectorCross(Engine.Vector(300,200,100),Engine.Vector(100,100,500))GetVectorDot
-
描述: 计算向量的点乘
-
描述: 计算两个向量的点乘并返回。
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| vec1 | Engine.Vector | 向量1 |
| vec2 | Engine.Vector | 向量2 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| result | number | 计算结果 |
UMath:GetVectorDot(Engine.Vector(300,200,100),Engine.Vector(100,100,500))GetPosOffset
-
描述: 获取位置偏移后的位置
-
描述: 以位置偏移后的位置进行返回。
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| pos0 | Engine.Vector | 位置 |
| offsetx | number | 偏移x |
| offsety | number | 偏移y |
| offsetz | number | 偏移z |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| result | Engine.Vector | 偏移后的位置 |
UMath:GetPosOffset(Engine.Vector(0,0,500),100,200,300)GetRandomInt
-
描述: 获取随机整数
-
描述: 以随机整数进行返回。
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| num0 | number | 最小值 |
| num1 | number | 最大值 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| result | number | 随机整数 |
UMath:GetRandomInt(0,100)GetRandomFloat
-
描述: 获取随机小数
-
描述: 以随机小数进行返回。
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| minValue | number | 最小值 |
| maxValue | number | 最大值 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| result | number | 随机小数 |
UMath:GetRandomFloat(0,1)NumberToString
-
描述: 数值转换为字符串
-
描述: 将数值转换为字符串返回。
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| num | number | 数值 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| result | string | 转换后的字符串 |
UMath:NumberToString(10)StringToNumber
-
描述: 字符串转换为数值
-
描述: 将字符串转换为数值进行返回。
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| str | string | 字符串 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| result | number | 转换后的字符串 |
UMath:StringToNumber("10")GetHorizonAngle
-
描述: 获取两点间的水平夹角
-
描述: 以两点间的水平夹角进行返回。
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| point1 | Engine.Vector | 坐标点1 |
| point2 | Engine.Vector | 坐标点2 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| result | number | 水平夹角 |
UMath:GetHorizonAngle(Engine.Vector(300,200,100),Engine.Vector(100,100,500))GetVerticleAngle
-
描述: 获取两点间的垂直夹角
-
描述: 将获取两点间的垂直夹角以数值形式返回。
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| point1 | Engine.Vector | 坐标点1 |
| point2 | Engine.Vector | 坐标点2 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| result | number | 垂直夹角 |
UMath:GetVerticleAngle(Engine.Vector(300,200,100),Engine.Vector(100,100,500))GetVectorProjection
-
描述: 计算向量的投影
-
描述: 计算一个向量在另一个向量上方向上的投影并返回。
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| vec1 | Engine.Vector | 向量1 |
| vec2 | Engine.Vector | 向量2 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| result | Engine.Vector | 投影 |
UMath:GetVectorProjection(Engine.Vector(300,200,100),Engine.Vector(100,100,500))GetSequence
-
描述: 获取数值序列
-
描述: 以一定步长生成数值序列并返回。
-
范围: 服务端、客户端
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| seq | number[] | 数值序列 |
UMath:GetSequence(0,10,2)GetLerp
-
描述: 获取对象插值
-
描述: 获取两个对象以某权重做线性插值的结果。
-
描述: 对象和返回值类型可以为boolean,number,vector3,color。Color是十六进制颜色码。
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| object1 | any | 对象1 |
| object2 | any | 对象2 |
| weight | number | 权重 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| result | any | 插值结果 |
UMath:GetLerp(0,10,0.25)EulerToQuaternion
-
描述: 将欧拉角转为四元数
-
描述: 以四元数形式返回一个欧拉角向量。
-
描述: 四元数参数为XYZW
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| eulerAngles | Engine.Vector | 欧拉角 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| Quaternion | Engine.Quat | 返回四元数 |
UMath:EulerToQuaternion(Engine.Vector(300,200,100))QuaternionToEuler
-
描述: 将四元数转为欧拉角
-
描述: 以欧拉角形式返回一个四元数。
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| quaternion | Engine.Quat | 四元数 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| eulerAngles | Engine.Vector | 返回四元数 |
UMath:QuaternionToEuler(Engine.Quat(300,200,100,100))RotatorToForward
-
描述: 将旋转转换为对应朝向的方向向量
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| Rot | Engine.Rotator | 旋转 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| forward | Engine.Vector | 朝向方向向量 |
UMath:RotatorToForward(Engine.Rotator(300,200,100))ForwardToRotator
-
描述: 将朝向的方向向量转换为对应的旋转
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| Forward | Engine.Vector | 朝向方向向量 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| rot | Engine.Rotator | 旋转 |
UMath:ForwardToRotator(Engine.Vector(-1,0,0))QuatSlerp
-
描述: 四元数的球面线性插值,会自动处理对齐保证插值走最短路径
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| Quat1 | Engine.Quat | 当前四元数 |
| Quat2 | Engine.Quat | 目标四元数 |
| Slerp | number | 插值参数,控制插值进度,范围[0,1] |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| result | Engine.Quat | 插值结果,归一化的四元数 |
local q1 = Engine.Quat(0, 0, 0, 1) -- 无旋转local q2 = Engine.Quat(0, 1, 0, 0) -- 180度绕Y轴旋转local result = UMath:QuatSlerp(q1, q2, 0.25)SmoothLerp_Vector
-
描述: 平滑地将一个向量从当前值过渡到目标值
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| Vector1 | Engine.Vector | 当前Vector |
| Vector2 | Engine.Vector | 目标Vector |
| SmoothFactor | number | 插值参数,控制插值进度,范围[0,1] |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| result | Engine.Vector | 插值结果 |
local vector1 = Engine.Vector(0, 0, 0)local vector2 = Engine.Vector(1000, 1000, 1000)local result = UMath:SmoothLerp_Vector(vector1, vector2, 0.25)SmoothDamp_Vector
-
描述: 平滑地将一个向量从当前值过渡到目标值,带有阻尼效果
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| Vector1 | Engine.Vector | 当前Vector |
| Vector2 | Engine.Vector | 目标Vector |
| CurVelocity | Engine.Vector | 当前速度,(引用传递,函数内部会修改) |
| SmoothTime | number | 平滑时间(阻尼时间,越小越快) |
| DeltaTime | number | 时间步长 |
| MaxSpeed | number | 最大速度(可选,传nil则不限制) |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| result | Engine.Vector | 插值结果,步进后的Vector |
local vector1 = Engine.Vector(125, 950, 0)local vector2 = Engine.Vector(125, -800, 0)local curVelocity = Engine.Vector(0, 0, 0)local smoothTime, deltaTime, maxSpeed = 1, 0.1, 500vector1 = UMath:SmoothDamp_Vector(vector1, vector2, curVelocity, smoothTime, deltaTime, maxSpeed)DegToRad
-
描述: 角度转弧度
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| Deg | number | 角度值 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| rad | number | 弧度值 |
local rad = UMath:DegToRad(90)RadToDeg
-
描述: 弧度转角度
-
范围: 服务端、客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| Rad | number | 弧度值 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| deg | number | 角度值 |
local rad = UMath:RadToDeg(math.pi/2)