Advertisement

Unreal Engine 4 —— 动态物体物理碰撞问题分析及解决方法

阅读量:

这篇博客详细阐述了当character角色处于飞行状态且速度为零时,在游戏场景中动态物体如何能够穿透该角色所存在的问题及其相应的解决办法。

该问题会在角色进入动态模式时持续存在。其实现方式及其应对措施具有高度的一致性。


Bug重现

  1. 设置character角色的MovementMode属性为MOVE_flying。
  2. 馴发StopMovementImmediately()函数以使角色的速度归零。
  3. 让场景中的动态物体朝character角色移动时,观察到动态物体即将穿行过角色位置。
Bug Review

该bug已被提交给Epic Games,并关联的问题编号为UE-35995

该bug官方预计在4.15版本进行修复,本博客提供的只是可行的workaround。

Bug分析

这个bug的奥秘隐藏在UCharacterMovementComponent::PhysFlying(float deltaTime, int32 Iterations)这个函数内部,在此函数内包含了如下的代码内容

复制代码
    FVector OldLocation = UpdatedC

全部评论 (0)

还没有任何评论哟~