Merge
This commit is contained in:
commit
15898fdc9e
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.
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.
Binary file not shown.
Binary file not shown.
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
};
|
|
@ -1,6 +1,7 @@
|
|||
#include "RotatingActor.h"
|
||||
|
||||
#include "Components/AudioComponent.h"
|
||||
#include "Kismet/GameplayStatics.h"
|
||||
|
||||
|
||||
URotatingActor::URotatingActor()
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue