Skip to content

CurveVelMotorUnit ​

概览 ​

字段值
KindUnit · 单位 Unit
Realmcommon

继承关系 ​

  • Unit(4 属性 / 25 函数 / 6 事件)
    • BaseMotorUnit(10 属性 / 5 函数 / 2 事件)
      • [CurveVelMotorUnit](5 属性)

继承成员 ​

2 个来源 / 14 属性 / 30 函数 / 8 事件

曲线速度运动器用于按“先加速、后匀速”的节奏驱动单位运动,通过 CurveAccelerationTime 描述加速阶段的时长,通过 CurveConstantSpeedTime 描述匀速阶段的时长。直线方向的加速度由 CurveLinearAcceleration 给出,旋转方向的加速度由 CurveAngularAcceleration 给出,CurveVelType 标记当前的运动类型。把它挂到目标单位下,就能用一组参数完整描述一段带加速度变化的持续运动。

适用场景 ​

适合为场景中的单位添加可配置的持续位移或旋转,例如让平台、道具在加速阶段结束后保持匀速移动,或让物件持续转动。创建时把加速与匀速参数一次写入,之后由该运动器自行推进。

使用要点 ​

通过 World:CreateUnit("CurveVelMotorUnit", config) 创建并挂到目标单位,可配置 CurveAccelerationTime、CurveConstantSpeedTime 和 CurveLinearAcceleration 后调用 Start。

注意事项 ​

通过 CurveAccelerationTime、CurveConstantSpeedTime、CurveLinearAcceleration 与 CurveAngularAcceleration 配置加速和匀速阶段;CurveVelType 是本类型公开可写枚举属性(0=Linear、1=Angular),可在 config 或运行时赋值切换。

代码示例 ​

创建曲线速度运动器并启动 ​

lua
-- @runtime client
local World = game:GetService('World')

local target = World:CreateUnit('WorldUnit', {
    Position = Vector3.New(0, 3, 0),
})
local motor = World:CreateUnit('CurveVelMotorUnit', {
    Parent = target,
    CurveAccelerationTime = 1.0,
    CurveConstantSpeedTime = 2.0,
    CurveLinearAcceleration = Vector3.New(0, 0, 8),
})

motor:Start()

属性 (5) ​

Name类型默认值说明
CurveVelTypeInt0 (Linear)运动类型,决定曲线速度运动单元的运动方式。
CurveAccelerationTimeFloat0.0加速时长,表示曲线速度运动中加速阶段持续的时间长度。
CurveConstantSpeedTimeFloat0.0匀速时长,表示曲线速度运动中匀速阶段持续的时间长度。
CurveLinearAccelerationVector3[0, 0, 0]CurveVelMotorUnit 的直线加速度属性,类型为 Vector3,默认值为 (0, 0, 0),可读写。它描述该曲线运动器在直线方向上的加速度分量,用于在直线运动过程中逐步累积线速度。
CurveAngularAccelerationVector3[0, 0, 0]CurveVelMotorUnit 的角加速度属性,类型为 Vector3,默认值为 (0, 0, 0),可读写。它描述该曲线运动器在角速度方向上的加速度分量,用于在曲线运动(圆周)类型的运动过程中逐步累积角速度。

关联类型 ​