I'm confused at some points of this camera code

void ACameraDirector::Tick( float DeltaTime )
{
Super::Tick( DeltaTime );

const float TimeBetweenCameraChanges = 2.0f;
const float SmoothBlendTime = 0.75f;
TimeToNextCameraChange -= DeltaTime;
if (TimeToNextCameraChange <= 0.0f)
{
    TimeToNextCameraChange += TimeBetweenCameraChanges;

    //Find the actor that handles control for the local player.
    APlayerController* OurPlayerController = UGameplayStatics::GetPlayerController(this, 0);
    if (OurPlayerController)
    {
        if (CameraTwo && (OurPlayerController->GetViewTarget() == CameraOne))
        {
            //Blend smoothly to camera two.
            OurPlayerController->SetViewTargetWithBlend(CameraTwo, SmoothBlendTime);
        }
        else if (CameraOne)
        {
            //Cut instantly to camera one.
            OurPlayerController->SetViewTarget(CameraOne);
        }
    }
}

}
can someone explain this to me at a high level plz?

As written, “void ACameraDirector::Tick( float DeltaTime ) { Super::Tick( DeltaTime );” isn’t going to do anything but call the parent classes version of Tick().

As an example if you have two classes, the first being AActor that has a virtual function,

[h]

virtual void Tick(float DeltaTime);

[cpp]

void AActor::Tick(float DeltaTime)
{
    UE_LOG(LogTemp, Warning, TEXT("Current delta time: %f"), DeltaTime);
}

Then, you have a class that inherits from AActor, called ACameraDirector who is overrideing that Tick function:

[h]

virtual void Tick(float DeltaTime) override;

[cpp]

void ACameraDirector::Tick(float DeltaTime)
{
    Super::Tick(DeltaTime); // this will also call the UE_LOG from the AActor class as you are calling the Super, which calls the parent class (AActor) tick function.
}