Platform: OS X & Win
When you try to possess a freshly spawned pawn the possess will happen but it leaves the client in a broken state in which input doesn’t work for that character.
Notice that this only happens on clients, so after opening the project make sure you check run dedicated server.
Case A) Call Possess on fresh spawned pawn without calling unpossess in previous frame
- open CaseA map
- hit play, move character a bit, hit k
- after 3 seconds, new character is spawned and possessed
- notice how your input won’t work for that new character
For this situation to work, you need to call Unpossess in a frame before Possess is called. If you open CaseAPlayerController and connect the Unpossess node at the end of KillCharacter, possessing will work fine, but if you call Unpossess in the same frame where you are possessing the new character (inside Respawn) it will not work either.
Case B) Spawn character before trying to possess it
- open CaseB map
- hit play, move character, hit k
- notice how the next character is spawned right away
- after 3 seconds, possess is called on it
- notice how it works properly when you try to move the new character
In this case we aren’t even calling unpossess. So it seems that possessing will only work for clients if:
- pawn trying to be possessed was in the scene before trying to possess it, or
- can only possess a freshly spawned pawn if unpossess was called before the frame when we try to possess
If you have any questions, please let me know.