Download

Make UNavMovementComponent::GetActorFeetLocation() virtual

The capsule height being involved should not be assumed so please change this function from FORCEINLINE to virtual so we can override it. I have to change the engine source to be able to override it in my derived class. It’s literally changing one word to another and it won’t have a noticeable impact on performance. Thanks!

I already asked with a pull request with this months ago and it got denied.

They said they were worried about the perf overhead of virtual tables and a function that can be called that often.

If they’re concerned with performance then I can point out places where GetActorFeetLocation() gets called a multiple times in the same function rather than getting it once and reusing the result.

Hey, also, the answer on this post says it’s just a single instruction more. \We can’t use movement without assuming a capsule-center origin because they don’t want to add one instruction per call?

From the answers on this thread, it looks like it’s three extra instructions. It seems like that wouldn’t be much. AI Navigation uses the function and I don’t think that is running every frame. I’m pretty sure they spread the AI out over multiple frames. It seems strange to me that this would be considered a significant hit on performance.