Gå till innehållet

APawn

En Pawn är en actor som kan tas över och styras av en spelare eller en AI via en AController.

Alla klasser som beskriver pawns ska ärva från denna. Den ärver i sin tur från AActor.

En nyskapad APawn-klass

MyPawn.h
#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Pawn.h"
#include "MyPawn.generated.h"

UCLASS()
class MYPROJECT_API AMyPawn : public APawn
{
    GENERATED_BODY()

public:
    AMyPawn();

protected:
    virtual void BeginPlay() override;

public: 
    virtual void Tick(float DeltaTime) override;
    virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override;
};
MyPawn.cpp
#include "MyPawn.h"

AMyPawn::AMyPawn()
{
    PrimaryActorTick.bCanEverTick = true;
}

void AMyPawn::BeginPlay()
{
    Super::BeginPlay();    
}

void AMyPawn::Tick(float DeltaTime)
{
    Super::Tick(DeltaTime);
}

void AMyPawn::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
    Super::SetupPlayerInputComponent(PlayerInputComponent);
}

SetupPlayerInputComponent()

Denna funktion körs när spelaren tar över pawn:en, för att binda spelarens knapptryckningar osv till objektets metoder.

Körs med en UInputComponent-instans som parameter.

GetController()

Returnerar den AController som just nu styr den här pawn:en.

AController* AnyController = GetController();
APlayerController* PlayerController = Cast<APlayerController>(GetController());

AutoPossessPlayer

Väljer vilken spelare som automatiskt ska ta kontrollen över objektet när det börjar finnas i spelet.

AutoPossessPlayer = EAutoReceiveInput::Player0;