We’re experiencing some issues with our character pawns not moving correctly in the shipping build as in the editor build in 4.12.
After some debugging, it seems that the culprit lies within the GetCharacterOwner() function of the CharacterMovementComponent:
In the shipping build, GetCharacterOwner() and GetPawnOwner() of the CharacterMovementComponent are returning the default class object of the pawn we’re expecting, but GetOwner() is returning the proper owning actor.
In the development editor build, each of these functions return the proper instance of the owning actor.
From our testing, this issue is not present in the 4.10 shipping build.
We have a custom C++ movement component class inheriting from UCharacterMovementComponent.
The movement component is set in the character’s C++ constructor:
Super(ObjectInitializer.SetDefaultSubobjectClass(ACharacter::CharacterMovementComponentName))
Back in 4.10, the functions UPawnMovementComponent::GetPawnOwner() and UCharacterMovementComponent::GetCharacterOwner() would return the proper owner (the character the movement component spawned for).
In 4.12, those same two functions return, instead, the default class version of my character (at any time after spawning the character).
I have tried to recreate it in a fresh C++ project, but a 4.10 to 4.12 fps project doesn’t carry the problem.
Would you be able to provide the project that you are experiencing the issue with, as I have also been unable to reproduce this in a clean project. If you could, please zip up the project, upload it to dropbox, and provide a link through a PM to me on the forums so we can take a closer look at the issue: https://forums.unrealengine.com/member.php?160394-Sean-Flint
I am marking this topic as resolved for tracking purposes, as we have not heard from you in a few days. If this issue persists, feel free to respond to this thread. For any new issues, please create a new Answerhub topic.