PlayerController: обладать против AcknowledgePossession против SetPawn - PullRequest
0 голосов
/ 09 марта 2019

В чем разница между вызывающей последовательностью (связанной друг с другом):

  • APlayerController::Possess()
  • APlayerController::AcknowledgePossession()
  • APlayerController::SetPawn()

Какую функцию я предпочитаю использовать (переопределить), чтобы активировать что-то, когда у контроллера игрока есть пешка?

1 Ответ

1 голос
/ 24 апреля 2019

SetPawn() будет вызываться внутри, когда вы звоните Possess(). В 4.22 Possess() помечен как виртуальный финал, вам нужно переопределить OnPossess (), чтобы выполнить свою конкретную работу, но вы все равно можете позвонить OnPossess(), чтобы изменить контролируемую пешку, тогда автоматически будет вызван OnPossess().

Possess() работает только на сервере, так же, как OnPossess(). Таким образом, в клиентах вы должны переопределить AcknowledgePossession(), чтобы выполнить аналогичную работу в OnPossess(), она будет вызываться, когда сервер контролирует пешку.

...