Add reworked Worker Enemy AI #3
|
@ -0,0 +1,34 @@
|
||||||
|
// Fill out your copyright notice in the Description page of Project Settings.
|
||||||
|
|
||||||
|
|
||||||
|
#include "PatrolRoute.h"
|
||||||
|
|
||||||
|
// Sets default values
|
||||||
|
APatrolRoute::APatrolRoute()
|
||||||
|
{
|
||||||
|
PrimaryActorTick.bCanEverTick = false;
|
||||||
|
|
||||||
|
Spline = CreateDefaultSubobject<USplineComponent>(TEXT("Spline"));
|
||||||
|
Spline->SetupAttachment(RootComponent);
|
||||||
|
}
|
||||||
|
|
||||||
|
void APatrolRoute::IncrementPatrolRoute()
|
||||||
|
{
|
||||||
|
if (PatrolIndex == Spline->GetNumberOfSplinePoints() - 1)
|
||||||
|
{
|
||||||
|
Direction = -1;
|
||||||
|
}
|
||||||
|
else if (PatrolIndex == 0)
|
||||||
|
{
|
||||||
|
Direction = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
PatrolIndex += Direction;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
FVector APatrolRoute::GetSplinePointAtWorld(int pointIndex)
|
||||||
|
{
|
||||||
|
return Spline->GetLocationAtSplinePoint(pointIndex, ESplineCoordinateSpace::World);
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
// Fill out your copyright notice in the Description page of Project Settings.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "CoreMinimal.h"
|
||||||
|
#include "Components/SplineComponent.h"
|
||||||
|
#include "GameFramework/Actor.h"
|
||||||
|
#include "PatrolRoute.generated.h"
|
||||||
|
|
||||||
|
UCLASS()
|
||||||
|
class NAKATOMI_API APatrolRoute : public AActor
|
||||||
|
{
|
||||||
|
GENERATED_BODY()
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
UPROPERTY(BlueprintReadWrite)
|
||||||
|
USplineComponent* Spline;
|
||||||
|
|
||||||
|
private:
|
||||||
|
int PatrolIndex = 0;
|
||||||
|
|
||||||
|
int Direction;
|
||||||
|
|
||||||
|
public:
|
||||||
|
// Sets default values for this actor's properties
|
||||||
|
APatrolRoute();
|
||||||
|
|
||||||
|
void IncrementPatrolRoute();
|
||||||
|
|
||||||
|
FVector GetSplinePointAtWorld(int pointIndex);
|
||||||
|
};
|
Loading…
Reference in New Issue