Fix pickups starting from incorrect location

This commit is contained in:
baz 2025-07-17 01:59:13 +01:00
parent 06a084e99e
commit a35b1f0893
4 changed files with 7 additions and 6 deletions

View File

@ -73,8 +73,9 @@ void AEnemyCharacter::OnDeath(FDamageInfo damageInfo)
if (UKismetSystemLibrary::DoesImplementInterface(pickup, UPickupable::StaticClass()))
{
pickup->SetActorLocation(GetActorLocation());
IPickupable::Execute_LoadDataFromDataAsset(pickup, PickupTemplate);
FVector pickupLocation = GetActorLocation();
pickup->SetActorLocation(pickupLocation);
IPickupable::Execute_LoadDataFromDataAsset(pickup, PickupTemplate, pickupLocation);
}
}
}

View File

@ -24,7 +24,7 @@ class VAMPIRES_API IPickupable
// Add interface functions to this class. This is the class that will be inherited to implement this interface.
public:
UFUNCTION(BlueprintNativeEvent)
void LoadDataFromDataAsset(UPickupDataAsset* PickupDataAsset);
void LoadDataFromDataAsset(UPickupDataAsset* PickupDataAsset, FVector Location);
UFUNCTION(BlueprintNativeEvent)
void ResetData();

View File

@ -60,7 +60,7 @@ void APickup::BeginPlay()
}
}
void APickup::LoadDataFromDataAsset_Implementation(UPickupDataAsset* PickupDataAsset)
void APickup::LoadDataFromDataAsset_Implementation(UPickupDataAsset* PickupDataAsset, FVector Location)
{
if (PickupDataAsset != nullptr)
{
@ -68,7 +68,7 @@ void APickup::LoadDataFromDataAsset_Implementation(UPickupDataAsset* PickupDataA
StaticMeshComponent->SetStaticMesh(PickupDataAsset->PickupStaticMesh);
PickupSoundBase = PickupDataAsset->PickupSoundBase;
CurveFloat = PickupDataAsset->CurveFloat;
PickupLocation = GetActorLocation();
PickupLocation = Location;
if (CurveFloat != nullptr)
{

View File

@ -53,7 +53,7 @@ protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
virtual void LoadDataFromDataAsset_Implementation(UPickupDataAsset* PickupDataAsset) override;
virtual void LoadDataFromDataAsset_Implementation(UPickupDataAsset* PickupDataAsset, FVector Location) override;
virtual void ResetData_Implementation() override;