I called get GameInstance in PlayerControllerBP and cast it to my derived class myGameInstance, everything works fine in Editor.
But after I package it to runtime, I found the get GameInstance call in my PlayerControllerBP failed to cast to myGameInstance class and it is the original UE4 GameInstance class instead.
The timing to call is not a suspect for I get the GameInstance when I press a key, and the system is ready for a while.