主题
CurveVelMotorUnit
概览
| 字段 | 值 |
|---|---|
| Kind | Unit · 单位 Unit |
| Realm | common |
继承关系
- Unit(4 属性 / 25 函数 / 6 事件)
- BaseMotorUnit(10 属性 / 5 函数 / 2 事件)
- [CurveVelMotorUnit](5 属性)
- BaseMotorUnit(10 属性 / 5 函数 / 2 事件)
继承成员
2 个来源 / 14 属性 / 30 函数 / 8 事件
- 来自 BaseMotorUnit(10 属性 / 5 函数 / 2 事件)
- 来自 Unit(4 属性 / 25 函数 / 6 事件)
- 属性:
AssetId、Name、Desc、Parent - 函数:
ClearAllChildren、GetChildren、GetDescendants、IsAncestorOf、IsDescendantOf、FindFirstAncestor、FindFirstAncestorWhichIsA、FindFirstAncestorOfClass、FindFirstChild、FindFirstChildWhichIsA、FindFirstChildOfClass、HasChildren、GetChildCount、GetChildAtIndex、SetAttribute、GetAttribute、GetAllProps、Clone、IsA、Destroy、GetPropertyChangedSignal、GetAttributeChangedSignal、FindFromPath、GetFullPath、GetDebugId - 事件:
ChildAdded、ChildRemoved、DescendantAdded、DescendantRemoving、AncestryChanged、Destroying
- 属性:
曲线速度运动器用于按“先加速、后匀速”的节奏驱动单位运动,通过 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 | 类型 | 默认值 | 说明 |
|---|---|---|---|
CurveVelType | Int | 0 (Linear) | 运动类型,决定曲线速度运动单元的运动方式。 |
CurveAccelerationTime | Float | 0.0 | 加速时长,表示曲线速度运动中加速阶段持续的时间长度。 |
CurveConstantSpeedTime | Float | 0.0 | 匀速时长,表示曲线速度运动中匀速阶段持续的时间长度。 |
CurveLinearAcceleration | Vector3 | [0, 0, 0] | CurveVelMotorUnit 的直线加速度属性,类型为 Vector3,默认值为 (0, 0, 0),可读写。它描述该曲线运动器在直线方向上的加速度分量,用于在直线运动过程中逐步累积线速度。 |
CurveAngularAcceleration | Vector3 | [0, 0, 0] | CurveVelMotorUnit 的角加速度属性,类型为 Vector3,默认值为 (0, 0, 0),可读写。它描述该曲线运动器在角速度方向上的加速度分量,用于在曲线运动(圆周)类型的运动过程中逐步累积角速度。 |
