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 配置加速和匀速阶段;当前公开 Meta 未声明可切换的 CurveVelType 或 MotorType 字段,不要在示例中自行补写。

代码示例

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

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]直线加速度,表示直线运动中的加速度向量。
CurveAngularAccelerationVector3[0, 0, 0]角加速度,表示圆周运动中的角加速度向量。

关联类型