1. AController::OnPossess(APawn* InPawn)
    1. InPawn->PossessedBy(this)
    2. SetPawn(InPawn)
  2. APlayerController::OnPossess(APawn* InPawn)
    1. InPawn->PossessedBy(this)
    2. SetPawn(InPawn)
    3. ClientRestart(InPawn)
  3. APawn::PossessedBy(AController* InController)
    1. SetOwner(InController)
    2. Controller = InController
    3. ReceivePossessed(InController)
  4. APlayerController::ClientRestart_Implementation (APawn* NewPawn)
    1. SetPawn(NewPawn)
    2. AcknowledgePossession(NewPawn)
    3. NewPawn->Controller = this
    4. NewPawn->PawnClientRestart()
  5. Client
  6. Server
  7. AController::Possess(APawn* InPawn)
    1. OnPossess(InPawn)
    2. ReceivePossess(InPawn)
  8. APlayerController::AcknowledgePossession (APawn* Pawn)
    1. ServerAcknowledgePossession(NewPawn)
  9. APlayerController::ServerAcknowledgePossession_Validate (APawn* Pawn)
  10. APlayerController::ServerAcknowledgePossession_Implementation (APawn* Pawn)