My first child C++ classes

Hi!

In this lecture, We create our first child C++ class for our Tank.

Do this to get ur child class from your custom pawn class-

Give a nice name and you are good to go unless you are using UE 4.26. You’ll get an error, ignore it and go ahead with the lecture, the solution is given in the lecture.

VS Code-

C++ file-

// Fill out your copyright notice in the Description page of Project Settings.


#include "PawnTank.h"
#include "GameFramework/SpringArmComponent.h"
#include "Camera/CameraComponent.h"

APawnTank::APawnTank()
{
    SpringArm = CreateDefaultSubobject<USpringArmComponent>(TEXT("Spring Arm"));
    SpringArm->SetupAttachment(RootComponent);

    Camera = CreateDefaultSubobject<UCameraComponent>(TEXT("Camera"));
    Camera->SetupAttachment(SpringArm);
}

// Called when the game starts or when spawned
void APawnTank::BeginPlay()
{
	Super::BeginPlay();
}

// Called every frame
void APawnTank::Tick(float DeltaTime)
{
	Super::Tick(DeltaTime);

}

// Called to bind functionality to input
void APawnTank::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
	Super::SetupPlayerInputComponent(PlayerInputComponent);
}

if you did something wrong then you can copy-paste this code. Remember to replace all “PawnBase”
with “PawnTank” or whatever name you give to your child class.

C file-

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "PawnBase.h"
#include "PawnTank.generated.h"

class USpringArmComponent;
class UCameraComponent;
UCLASS()
class TOONTANKS_API APawnTank : public APawnBase
{
	GENERATED_BODY()

private:

	UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Components", meta = (AllowPrivateAccess = "true"))
	USpringArmComponent* SpringArm;

	UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Components", meta = (AllowPrivateAccess = "true"))
	UCameraComponent* Camera;

public:

	APawnTank();

	// Called every frame
	virtual void Tick(float DeltaTime) override;

	// Called to bind functionality to input
	virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override;

protected:
	// Called when the game starts or when spawned
	virtual void BeginPlay() override;
};

Remember to delete the necessary code from the custom pawn files.

Previous toon tanks post: Toon Tanks after access modifiers

Thanks for reading,
Good BYE!!

2 Likes

How do you feel about creating classes in Unreal?

1 Like

it might sound weird to you or anyone else reading this, but it gives me a nice feeling of satisfaction

2 Likes

Not weird at all. There is a level of satisfaction when you create something that’s yours from the ground up.

2 Likes

I feel you @beegeedee

1 Like