Kompendium: Player Controller

Jest to klasa posiadające dwie główne podklasy. Klasa “PlayerController” jest używana przez istotę ludzką, natomiast “AIController” jest używany przy sztucznej inteligencji. W prostej grze nie jest to potrzebne, by stworzyć Blueprint bazujący na “PlayerController“, gdyż silnik Unreal Engine używa domyślnych instancji “Player Controller“, które są wystarczające w większości przypadków.

Obiekt “Pawn” oraz “Character” są klasami które otrzymują zdarzenia punktu wejścia jeśli są kierowane przez “PlayerController“. Użycie ich jest zależne nawet jeśli “Player Controller” jest domyślną opcją. Zdarzenia wejścia mogę zostać umieszczone w “Player Controller” lub w “Pawn“, jednakże zdarzenia i akcje są powiązane z ruchem – więc “Pawn” powinien być w klasie w której przedstawiany jest jako “Pawn”.

Dla przykładu, gdy gracz kontroluje charakter, który może użyć parę rodzajów pojazdów jak samochód, helikopter, czy łódź. Każde z nich jest przedstawiany przez podklasę “Pawn” i musi zawierać adekwatne akcje ruchu. Jednakże punkt wejścia, który pauzuje grę nie powinien być klasą “Pawn“, ponieważ musiałby zostać powtórzony we wszystkich podklasach “Pawn” użytych przez grę. Idealnym miejscem dla tego typu punktu wejścia jest zdarzenie niezwiązane z “Pawn” w klasie “Player Controller”.

23a_bpc2_playercontroller

Możesz określić klasę “CameraManager“. Jeśli żadna z nich nie jest określona, to domyślna klasa jest używana do kontrolowania aktywnej kamery używanej przez “Pawn”. Inne atrybuty pozwalają ci dostosować skalę w punktu wejścia związanym z rotacją.

Ilustracja poniżej przedstawia prosty sposób na pauzę i wznowienie gry przy wciśnięciu przycisku “P”. Te akcje są w “PlayerController“. Używają one funkcji “Set Game Paused“, która otrzymuje wartość zmiennej Boolean (true lub false) jako punkt wejścia. Każde wezwanie makra FlipFlop przełącza wartość zmiennej, który odpowiada pauzie i wznowieniu gry. Istotną opcją w punkcie wejścia naszego przycisku “P” jest opcja “Execute When Paused“.

23b_bpc2_playercontroller


Źródło: http://romeroblueprints.blogspot.com/2016/06/bp-compendium-2-player-controller.html