This commit is contained in:
Finn Wundram 2021-01-19 17:14:16 +01:00
commit 15898fdc9e
20 changed files with 114 additions and 3 deletions

Binary file not shown.

BIN
Content/Audio/Voice/29.wav Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,68 @@
#include "MovingActor.h"
#include "Components/AudioComponent.h"
#include "Kismet/GameplayStatics.h"
UMovingActor::UMovingActor()
{
PrimaryComponentTick.bCanEverTick = true;
}
void UMovingActor::BeginPlay()
{
Super::BeginPlay();
}
void UMovingActor::Move()
{
targetLocation = GetOwner()->GetActorLocation();
targetLocation.X += MovementTarget;
tempLocation = FVector(MovementSpeed, 0.0f, 0.0f);
if (Negative)
{
targetLocation.X -= MovementTarget;
targetLocation.Y += MovementTarget;
tempLocation = FVector(0.0f, MovementSpeed, 0.0f);
}
this->targetLocation = targetLocation;
this->moving = true;
TArray<UAudioComponent*> Audios;
GetOwner()->GetComponents<UAudioComponent>(Audios);
if (Audios.Num() == 0) return;
if (soundHasBeenPlayed) return;
for (auto Audio : Audios)
{
if (Audio->ComponentHasTag("location"))
{
UGameplayStatics::PlaySoundAtLocation(GetOwner(), Audio->Sound, GetOwner()->GetActorLocation(),
GetOwner()->GetActorRotation(), 1, 1, 0,
Audio->AttenuationSettings, nullptr, GetOwner());
}
else
{
Audio->Play();
}
}
soundHasBeenPlayed = true;
}
void UMovingActor::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
{
Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
if (moving)
{
FVector Location = GetOwner()->GetActorLocation();
if (Location.Equals(targetLocation, 1.0f))
{
moving = false;
}
else
GetOwner()->SetActorLocation(Location + tempLocation);
}
}

View File

@ -0,0 +1,44 @@
#pragma once
#include "CoreMinimal.h"
#include "GameFramework//Actor.h"
#include "Components/ActorComponent.h"
#include "MovingActor.generated.h"
UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) )
class BUILDINGESCAPE_API UMovingActor : public UActorComponent
{
GENERATED_BODY()
public:
// Sets default values for this component's properties
UMovingActor();
protected:
// Called when the game starts
virtual void BeginPlay() override;
UFUNCTION(BlueprintCallable)
void Move();
public:
// Called every frame
virtual void TickComponent(float DeltaTime, ELevelTick TickType,
FActorComponentTickFunction* ThisTickFunction) override;
UPROPERTY(EditAnywhere)
float MovementSpeed = 15.f;
UPROPERTY(EditAnywhere)
float MovementTarget = 10.f;
UPROPERTY(EditAnywhere)
bool Negative = false;
private:
bool moving;
bool soundHasBeenPlayed;
FVector targetLocation;
FVector tempLocation;
};

View File

@ -1,6 +1,7 @@
#include "RotatingActor.h"
#include "Components/AudioComponent.h"
#include "Kismet/GameplayStatics.h"
URotatingActor::URotatingActor()

View File

@ -3,8 +3,6 @@
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "Components/ActorComponent.h"
#include "Kismet//GameplayStatics.h"
#include "RotatingActor.generated.h"
@ -22,7 +20,7 @@ protected:
void Rotate(FRotator TargetRotation);
UFUNCTION()
UFUNCTION(BlueprintCallable)
void Rotate();
public: