Compare commits
	
		
			2 Commits
		
	
	
		
			9b0cfbecc3
			...
			e8d7c49a4e
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| e8d7c49a4e | |||
| 97201d8b6a | 
| @ -4,12 +4,13 @@ | |||||||
| #include "Pickup.h" | #include "Pickup.h" | ||||||
| 
 | 
 | ||||||
| #include "PlayerCharacter.h" | #include "PlayerCharacter.h" | ||||||
|  | #include "Kismet/GameplayStatics.h" | ||||||
| 
 | 
 | ||||||
| // Sets default values
 | // Sets default values
 | ||||||
| APickup::APickup() | APickup::APickup() | ||||||
| { | { | ||||||
| 	// Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
 | 	// Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
 | ||||||
| 	PrimaryActorTick.bCanEverTick = false; | 	PrimaryActorTick.bCanEverTick = true; | ||||||
| 
 | 
 | ||||||
| 	// Create Sphere Component
 | 	// Create Sphere Component
 | ||||||
| 	SphereComponent = CreateDefaultSubobject<USphereComponent>(TEXT("Sphere Component")); | 	SphereComponent = CreateDefaultSubobject<USphereComponent>(TEXT("Sphere Component")); | ||||||
| @ -29,10 +30,22 @@ void APickup::Tick(float DeltaSeconds) | |||||||
| 	Super::Tick(DeltaSeconds); | 	Super::Tick(DeltaSeconds); | ||||||
| 
 | 
 | ||||||
| 	// TODO: Move actor towards player when in range
 | 	// TODO: Move actor towards player when in range
 | ||||||
|  | 	FVector actorLocation = GetActorLocation(); | ||||||
|  | 	FVector playerLocation = UGameplayStatics::GetPlayerCharacter(GetWorld(), 0)->GetActorLocation(); | ||||||
|  | 	double currentDistance = FVector::Distance(actorLocation, playerLocation); | ||||||
|  | 
 | ||||||
|  | 	if (currentDistance <= PickupMovementRange) | ||||||
|  | 	{ | ||||||
|  | 		double speed = 400 / currentDistance; | ||||||
|  | 		UE_LOG(LogTemp, Warning, TEXT("The integer value is: %f"), speed); | ||||||
|  | 		FVector location = FMath::VInterpTo(actorLocation, playerLocation, DeltaSeconds, speed); | ||||||
|  | 		SetActorLocation(location); | ||||||
|  | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void APickup::OnBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, | void APickup::OnBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, | ||||||
|                              UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult) |                              UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, | ||||||
|  |                              const FHitResult& SweepResult) | ||||||
| { | { | ||||||
| 	if (APlayerCharacter* PlayerCharacter = Cast<APlayerCharacter>(OtherActor)) | 	if (APlayerCharacter* PlayerCharacter = Cast<APlayerCharacter>(OtherActor)) | ||||||
| 	{ | 	{ | ||||||
| @ -40,4 +53,3 @@ void APickup::OnBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* O | |||||||
| 		Destroy(); | 		Destroy(); | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 |  | ||||||
|  | |||||||
| @ -12,6 +12,14 @@ class VAMPIRES_API APickup : public AActor | |||||||
| { | { | ||||||
| 	GENERATED_BODY() | 	GENERATED_BODY() | ||||||
| 
 | 
 | ||||||
|  | public: | ||||||
|  | 
 | ||||||
|  | 	UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) | ||||||
|  | 	double PickupMovementRange = 500; | ||||||
|  | 
 | ||||||
|  | 	UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) | ||||||
|  | 	double PickupMovementSpeed = 1000; | ||||||
|  | 	 | ||||||
| private: | private: | ||||||
| 	UPROPERTY() | 	UPROPERTY() | ||||||
| 	USphereComponent* SphereComponent; | 	USphereComponent* SphereComponent; | ||||||
| @ -27,6 +35,7 @@ protected: | |||||||
| public: | public: | ||||||
| 	virtual void Tick(float DeltaSeconds) override; | 	virtual void Tick(float DeltaSeconds) override; | ||||||
| 
 | 
 | ||||||
|  | 	UFUNCTION() | ||||||
| 	virtual void OnBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, | 	virtual void OnBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, | ||||||
| 	                            UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, | 	                            UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, | ||||||
| 	                            const FHitResult& SweepResult); | 	                            const FHitResult& SweepResult); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user