I’m currently implementing bullet code, and decided to pool allocate the bullets. Following some tutorials, I created a base BP_PooledActor class that derives from actor. Then I had a general BP_Bullet class derive from that and a leaf BP_MyWeaponBullet class.
Problem. When you inherit from an empty actor, UE sticks a DefaultSceneRoot component in. In subclasses it’s immutable, but the collision mechanics seem to demand that colliders be the root component. Simply wouldn’t respond to OnActor/ComponentHit. I turned on all the necessary flags and channel configurations but nada. When I edited the BP_PooledActor to contain a sphere collider as the root though, bingo! Collisions.
Since different subclasses of BP_Bullet may have different colliders, and other subclasses of BP_PooledActor may not even be collidable at all, how can I make collisions play nicely with pooled actors - or is this a limitation of UE?