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)