You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UE4.27中Projectile的OnHit函数未触发问题求助

Unreal Engine 4.27抛射体OnHit事件未触发的排查与解决

以下是针对问题的具体排查和解决步骤:

1. 验证碰撞通道与预设配置

  • 打开项目设置→碰撞,确认自定义对象通道"Projectile"的默认响应为阻挡;同时检查测试目标物体的碰撞预设,确保其对"Projectile"通道的响应也是阻挡(而非忽略或重叠)。
  • 检查SphereComponent的碰撞启用状态:确保其Collision Enabled设置为Query and Physics或Physics Only,Query Only无法触发物理碰撞相关的OnHit事件。

2. 检查抛射体运动组件设置

  • 选中ProjectileMovementComponent,确认其Collision Handling Mode设置为Physics Only或Query and Physics;若设为None,会完全禁用碰撞检测。
  • 注意:使用ProjectileMovement驱动的抛射体,其SphereComponent无需开启Simulate Physics(由运动组件负责驱动),但必须保证运动组件的碰撞配置正确。

3. 调整事件绑定时机

你当前在BeginPlay中绑定OnHit事件,若抛射体生成后立即发生碰撞,可能错过事件绑定。建议将绑定逻辑移至构造函数中,确保事件在对象初始化时就完成绑定:

AProjectile::AProjectile()
{
    PrimaryActorTick.bCanEverTick = false;

    // 初始化碰撞组件
    CollisionComponent = CreateDefaultSubobject<USphereComponent>(TEXT("SphereCollision"));
    RootComponent = CollisionComponent;
    CollisionComponent->BodyInstance.SetCollisionProfileName(TEXT("Projectile"));
    // 提前绑定OnHit事件
    CollisionComponent->OnComponentHit.AddDynamic(this, &AProjectile::OnHit);

    // 初始化抛射体运动组件
    ProjectileMovementComponent = CreateDefaultSubobject<UProjectileMovementComponent>(TEXT("ProjectileMovement"));
    ProjectileMovementComponent->SetUpdatedComponent(CollisionComponent);
    ProjectileMovementComponent->InitialSpeed = 3000.f;
    ProjectileMovementComponent->MaxSpeed = 3000.f;
    ProjectileMovementComponent->bRotationFollowsVelocity = true;
    ProjectileMovementComponent->bShouldBounce = false;
}

4. 确认测试物体的物理设置

  • 测试用静态网格物体需开启Simulate Physics(若要接收冲量),同时确保其Generate OnHit Collisions已勾选,Collision Enabled设置为Query and Physics。

5. 日志辅助排查

在BeginPlay中添加日志,验证碰撞配置是否生效:

void AProjectile::BeginPlay()
{
    Super::BeginPlay();
    UE_LOG(LogTemp, Warning, TEXT("当前碰撞配置: %s"), *CollisionComponent->BodyInstance.GetCollisionProfileName().ToString());
}

运行项目后查看日志,确认输出的碰撞配置为"Projectile",确保代码中的设置未被蓝图覆盖。

6. 可视化碰撞检测

按下编辑器快捷键Alt+C开启碰撞可视化,检查抛射体的Sphere碰撞体与测试物体的碰撞体是否会发生实际接触,排除碰撞体大小、位置导致的无接触问题。


内容的提问来源于stack exchange,提问作者fuvaji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 17:48:22