Why UPathFollowingComponent::IsBlocked() is not virtual?

Hello,

I am using Unreal Engine 4.12.5 and make extensive use of PathFollowingComponent. For some reason method UPathFollowingComponent::IsBlocked() is declared non virtual:

bool IsBlocked() const;

I need to customize it’s functionality (take in consideration rotation of an object in addition to it’s position), but the fact that I can not override it makes it horribly uncomfortable. Can you please make it virtual or otherwise explain me why this architecture was implemented in this way (maybe it’s intended design)?

Thanks in advance,
.

IsBlocked is producing result based on data gathered by regular UpdateBlockDetection calls, which in turn is virtual. I suggest overriding UpdateBlockDetection and producing (forgering!) own data. You’ll just have to look at how IsBlocked uses the data to fake if effectively :slight_smile:

Cheers,

–mieszko

Thank you very much for such fast answer! I think I grasped your idea, but it still seems a little bit hacky to me :slight_smile: Although in current surcumstances maybe it’s the best solution.
Best regards,
.