跳转到内容
CRUSHFORMV1.1.0
在 Fab 上获取

参考组件

UCFImpactFeedbackComponent

模块CrushformImpact头文件CFImpactFeedbackComponent.h父类UActorComponent

将单个基元的刚体撞击转换为撞击反馈事件。仅限本机:每一端判定其所见的撞击,并通过撞击反馈子系统播放;不做转发。当速度变化达到 Min Impulse Per Kg,且开始接触或在一次之内发生跳变时,即计为一次撞击,因此静止在地面上的刚体保持无声。使用 SetObservedPrimitive 设置基元。

函数

AUTHORITY · 服务器,每个端LOCAL · 本机PURE · 只读
float ComputeIntensity(float ImpulseMagnitude, float MassKg, float OtherMassKg, float MinImpulsePerKg, float ImpulsePerKgForFullIntensity)
C++ ONLY

命中的强度,0..1,取决于被命中刚体每千克所受的冲量(即其速度变化,单位 cm/s);低于 MinImpulsePerKg 时为负值。与会让开的刚体相撞时(OtherMassKg > 0;不会让开的刚体则为 0),速度变化会被提升为撞向固定墙壁、吸收相同能量时的速度(UCFDeformComponent::GetEnergyScale):例如被汽车撞击的卡车速度几乎不变,但这依然是一场撞车。

uint64 MakeSourceId(const UPrimitiveComponent* Primitive)
C++ ONLY

撞击事件为 Primitive 携带的 ID,因此无论事件经由哪一端或哪条路径到达,其冷却时间都能生效。

void SetObservedPrimitive(UPrimitiveComponent* InPrimitive)
C++ ONLY

设置要上报命中的基元。可随时调用;在 Begin Play 之前调用时,组件会在那时进行绑定。

UPrimitiveComponent* GetObservedPrimitive() const
PUREC++ ONLY

要上报命中的基元;在调用 SetObservedPrimitive 之前为 null。

属性

FGameplayTag EventTag
分类
Impact
float ImpulsePerKgForFullIntensity = 600.f
默认值
600.f
分类
Impact
float MinImpulsePerKg = 50.f
默认值
50.f
分类
Impact
float ContactGapSeconds = 0.1f
默认值
0.1f
分类
Impact
float ContactSpikeRatio = 2.f
默认值
2.f
分类
Impact