跳转到内容

UMath

数学

用于数学计算

枚举列表

UMath.Axis

  • 描述: 坐标轴
成员名称成员说明
X_AxisX轴
Y_AxisY轴
Z_AxisZ轴

函数列表

GetVectorLength

  • 描述: 获取向量长度

  • 描述: 获取向量的长度,返回的结果是一个数值。

  • 范围: 服务端、客户端

参数列表:

参数类型说明
vecEngine.Vector向量

返回字段:

返回字段字段类型说明
lenthnumber向量长度
UMath:GetVectorLength(Engine.Vector(20,100,500))

GetNormalize

  • 描述: 获取向量归一化结果

  • 描述: 将一个向量归一化为一个标准向量。

  • 范围: 服务端、客户端

参数列表:

参数类型说明
vecEngine.Vector向量

返回字段:

返回字段字段类型说明
resultEngine.Vector返回的标准向量
UMath:GetNormalize(Engine.Vector(30,20,50))

GetDistance

  • 描述: 获取两点间的距离

  • 描述: 以两点间的距离值进行返回。

  • 范围: 服务端、客户端

参数列表:

参数类型说明
v1Engine.Vector向量1
v2Engine.Vector向量2

返回字段:

返回字段字段类型说明
resultnumber距离
UMath:GetDistance(Engine.Vector(100,200,300),Engine.Vector(200,300,500))

GetPointToPoint

  • 描述: 获取两点间的方向

  • 描述: 以两点间的方向进行返回。

  • 范围: 服务端、客户端

参数列表:

参数类型说明
point1Engine.Vector点1
point1Engine.Vector点2

返回字段:

返回字段字段类型说明
resultEngine.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”}

  • 范围: 服务端、客户端

参数列表:

参数类型说明
vecEngine.Vector向量
axisMath.Axis坐标轴
anglenumber角度

返回字段:

返回字段字段类型说明
resultEngine.Vector旋转后的向量
UMath:GetVectorRotate(Engine.Vector(300,200,100),UMath.Axis.X_Axis,90)

GetVectorAngle

  • 描述: 获取方向之间的夹角

  • 描述: 以两点间夹角的值进行返回。

  • 范围: 服务端、客户端

参数列表:

参数类型说明
vec1Engine.Vector向量1
vec2Engine.Vector向量2

返回字段:

返回字段字段类型说明
resultnumber夹角
UMath:GetVectorAngle(Engine.Vector(300,200,100),Engine.Vector(100,100,500))

GetVectorCross

  • 描述: 计算向量的叉乘

  • 描述: 计算两个向量的叉乘并返回。

  • 范围: 服务端、客户端

参数列表:

参数类型说明
vec1Engine.Vector向量1
vec2Engine.Vector向量2

返回字段:

返回字段字段类型说明
resultEngine.Vector计算结果
UMath:GetVectorCross(Engine.Vector(300,200,100),Engine.Vector(100,100,500))

GetVectorDot

  • 描述: 计算向量的点乘

  • 描述: 计算两个向量的点乘并返回。

  • 范围: 服务端、客户端

参数列表:

参数类型说明
vec1Engine.Vector向量1
vec2Engine.Vector向量2

返回字段:

返回字段字段类型说明
resultnumber计算结果
UMath:GetVectorDot(Engine.Vector(300,200,100),Engine.Vector(100,100,500))

GetPosOffset

  • 描述: 获取位置偏移后的位置

  • 描述: 以位置偏移后的位置进行返回。

  • 范围: 服务端、客户端

参数列表:

参数类型说明
pos0Engine.Vector位置
offsetxnumber偏移x
offsetynumber偏移y
offsetznumber偏移z

返回字段:

返回字段字段类型说明
resultEngine.Vector偏移后的位置
UMath:GetPosOffset(Engine.Vector(0,0,500),100,200,300)

GetRandomInt

  • 描述: 获取随机整数

  • 描述: 以随机整数进行返回。

  • 范围: 服务端、客户端

参数列表:

参数类型说明
num0number最小值
num1number最大值

返回字段:

返回字段字段类型说明
resultnumber随机整数
UMath:GetRandomInt(0,100)

GetRandomFloat

  • 描述: 获取随机小数

  • 描述: 以随机小数进行返回。

  • 范围: 服务端、客户端

参数列表:

参数类型说明
minValuenumber最小值
maxValuenumber最大值

返回字段:

返回字段字段类型说明
resultnumber随机小数
UMath:GetRandomFloat(0,1)

NumberToString

  • 描述: 数值转换为字符串

  • 描述: 将数值转换为字符串返回。

  • 范围: 服务端、客户端

参数列表:

参数类型说明
numnumber数值

返回字段:

返回字段字段类型说明
resultstring转换后的字符串
UMath:NumberToString(10)

StringToNumber

  • 描述: 字符串转换为数值

  • 描述: 将字符串转换为数值进行返回。

  • 范围: 服务端、客户端

参数列表:

参数类型说明
strstring字符串

返回字段:

返回字段字段类型说明
resultnumber转换后的字符串
UMath:StringToNumber("10")

GetHorizonAngle

  • 描述: 获取两点间的水平夹角

  • 描述: 以两点间的水平夹角进行返回。

  • 范围: 服务端、客户端

参数列表:

参数类型说明
point1Engine.Vector坐标点1
point2Engine.Vector坐标点2

返回字段:

返回字段字段类型说明
resultnumber水平夹角
UMath:GetHorizonAngle(Engine.Vector(300,200,100),Engine.Vector(100,100,500))

GetVerticleAngle

  • 描述: 获取两点间的垂直夹角

  • 描述: 将获取两点间的垂直夹角以数值形式返回。

  • 范围: 服务端、客户端

参数列表:

参数类型说明
point1Engine.Vector坐标点1
point2Engine.Vector坐标点2

返回字段:

返回字段字段类型说明
resultnumber垂直夹角
UMath:GetVerticleAngle(Engine.Vector(300,200,100),Engine.Vector(100,100,500))

GetVectorProjection

  • 描述: 计算向量的投影

  • 描述: 计算一个向量在另一个向量上方向上的投影并返回。

  • 范围: 服务端、客户端

参数列表:

参数类型说明
vec1Engine.Vector向量1
vec2Engine.Vector向量2

返回字段:

返回字段字段类型说明
resultEngine.Vector投影
UMath:GetVectorProjection(Engine.Vector(300,200,100),Engine.Vector(100,100,500))

GetSequence

  • 描述: 获取数值序列

  • 描述: 以一定步长生成数值序列并返回。

  • 范围: 服务端、客户端

返回字段:

返回字段字段类型说明
seqnumber[]数值序列
UMath:GetSequence(0,10,2)

GetLerp

  • 描述: 获取对象插值

  • 描述: 获取两个对象以某权重做线性插值的结果。

  • 描述: 对象和返回值类型可以为boolean,number,vector3,color。Color是十六进制颜色码。

  • 范围: 服务端、客户端

参数列表:

参数类型说明
object1any对象1
object2any对象2
weightnumber权重

返回字段:

返回字段字段类型说明
resultany插值结果
UMath:GetLerp(0,10,0.25)

EulerToQuaternion

  • 描述: 将欧拉角转为四元数

  • 描述: 以四元数形式返回一个欧拉角向量。

  • 描述: 四元数参数为XYZW

  • 范围: 服务端、客户端

参数列表:

参数类型说明
eulerAnglesEngine.Vector欧拉角

返回字段:

返回字段字段类型说明
QuaternionEngine.Quat返回四元数
UMath:EulerToQuaternion(Engine.Vector(300,200,100))

QuaternionToEuler

  • 描述: 将四元数转为欧拉角

  • 描述: 以欧拉角形式返回一个四元数。

  • 范围: 服务端、客户端

参数列表:

参数类型说明
quaternionEngine.Quat四元数

返回字段:

返回字段字段类型说明
eulerAnglesEngine.Vector返回四元数
UMath:QuaternionToEuler(Engine.Quat(300,200,100,100))

RotatorToForward

  • 描述: 将旋转转换为对应朝向的方向向量

  • 范围: 服务端、客户端

参数列表:

参数类型说明
RotEngine.Rotator旋转

返回字段:

返回字段字段类型说明
forwardEngine.Vector朝向方向向量
UMath:RotatorToForward(Engine.Rotator(300,200,100))

ForwardToRotator

  • 描述: 将朝向的方向向量转换为对应的旋转

  • 范围: 服务端、客户端

参数列表:

参数类型说明
ForwardEngine.Vector朝向方向向量

返回字段:

返回字段字段类型说明
rotEngine.Rotator旋转
UMath:ForwardToRotator(Engine.Vector(-1,0,0))

QuatSlerp

  • 描述: 四元数的球面线性插值,会自动处理对齐保证插值走最短路径

  • 范围: 服务端、客户端

参数列表:

参数类型说明
Quat1Engine.Quat当前四元数
Quat2Engine.Quat目标四元数
Slerpnumber插值参数,控制插值进度,范围[0,1]

返回字段:

返回字段字段类型说明
resultEngine.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

  • 描述: 平滑地将一个向量从当前值过渡到目标值

  • 范围: 服务端、客户端

参数列表:

参数类型说明
Vector1Engine.Vector当前Vector
Vector2Engine.Vector目标Vector
SmoothFactornumber插值参数,控制插值进度,范围[0,1]

返回字段:

返回字段字段类型说明
resultEngine.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

  • 描述: 平滑地将一个向量从当前值过渡到目标值,带有阻尼效果

  • 范围: 服务端、客户端

参数列表:

参数类型说明
Vector1Engine.Vector当前Vector
Vector2Engine.Vector目标Vector
CurVelocityEngine.Vector当前速度,(引用传递,函数内部会修改)
SmoothTimenumber平滑时间(阻尼时间,越小越快)
DeltaTimenumber时间步长
MaxSpeednumber最大速度(可选,传nil则不限制)

返回字段:

返回字段字段类型说明
resultEngine.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, 500
vector1 = UMath:SmoothDamp_Vector(vector1, vector2, curVelocity, smoothTime, deltaTime, maxSpeed)

DegToRad

  • 描述: 角度转弧度

  • 范围: 服务端、客户端

参数列表:

参数类型说明
Degnumber角度值

返回字段:

返回字段字段类型说明
radnumber弧度值
local rad = UMath:DegToRad(90)

RadToDeg

  • 描述: 弧度转角度

  • 范围: 服务端、客户端

参数列表:

参数类型说明
Radnumber弧度值

返回字段:

返回字段字段类型说明
degnumber角度值
local rad = UMath:RadToDeg(math.pi/2)