I’m not sure if this is a bug or not, I may have done something wrong on my end, but I have over an year of C++ experience with the engine and I think this is, indeed, a bug.
So here’s the thing. I have a projectile that acts as a weapon bullet. I’m subscribing to UProjectileMovementComponent::OnProjectileBounce() and UProjectileMovementComponent::OnProjectileStop() and both give me an FHitResult to work with. I’m reading the PhysMaterial property of the passed object in order to know what kind of surface I’m dealing with. It works well when the bullet hits an actor with simple collision, but when the actor’s mesh has CollisionComplexity set to Use Complex Collision as Simple, the returned PhysMaterial is always default.
HOWEVER: it does work if the phys material isn’t being overriden from the mesh itself, but is set directly in the mesh’s material properties. While I am kind of OK with this workaround, I do believe this is not intended behavior and should be addressed.