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

参考子系统与库

UCFImpactFeedbackSubsystem

模块CrushformImpact头文件CFImpactFeedbackSubsystem.h父类UTickableWorldSubsystem

在本机上播放映射到某个撞击事件的声音与 Niagara 特效。不在专用服务器上创建。

函数

AUTHORITY · 服务器,每个端LOCAL · 本机PURE · 只读
UCFImpactFeedbackSubsystem* Get(const UObject* WorldContext)
C++ ONLY

WorldContext 所在世界的撞击反馈子系统;若没有则为 nullptr。

bool ShouldPlayInNetMode(ENetMode NetMode)
C++ ONLY

NetMode 对应的世界是否播放撞击反馈:除专用服务器以外的所有模式。

bool TryGetLocalViewLocation(const UWorld* World, FVector& OutLocation)
C++ ONLY

第一个本地玩家的摄像机位置;若世界中没有则返回 false。

void PlayImpact(const FCFImpactEvent& InEvent)
C++ ONLY

播放映射到 InEvent.Tag 的声音和特效。当前生效的集合没有该标签(或其祖先标签)的条目、强度低于条目的最小值、事件超出距离、其来源处于冷却中,或该端是专用服务器时,这是一个开销很小的空操作。声音通道已满时只丢弃声音。只有在本帧已启动的声音少于 UCFImpactFeedbackSettings::MaxSoundsPerFrame 个(0:不设上限)时,声音才会立即启动;其余的最多等待 SoundQueueSeconds,按从强到弱的顺序,之后被丢弃。

void SetActiveSet(UCFImpactFeedbackSet* InSet)
C++ ONLY

替换当前集合;来自 UCFImpactFeedbackSettings 的默认集合不再覆盖它。

void SetListenerOverride(const TOptional<FVector>& InLocation)
C++ ONLY

设置后,距离检查改为从该点而非本地摄像机进行测量。

事件

FCFOnImpactPlayedDelegate OnImpactPlayed
C++ ONLY
(const FCFImpactPlayback&)

在本机上,对每一次播放了声音或特效的撞击触发,于撞击被判定时触发。因 UCFImpactFeedbackSettings::MaxSoundsPerFrame 而等待之后帧的声音,一旦过了它的 SoundQueueSeconds,仍可能被丢弃。