#pragma once #include "CoreMinimal.h" #include "GameFramework/Actor.h" #include "MProjectile.generated.h" class UCapsuleComponent; class UNiagaraComponent; class UNiagaraSystem; class UProjectileMovementComponent; UCLASS() class MECHDEFENCE_API AMProjectile : public AActor { GENERATED_BODY() protected: UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Components") UProjectileMovementComponent* ProjectileComponent; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Components") UStaticMeshComponent* MeshComponent; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Components") UNiagaraComponent* ParticleSystem; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Components"); UCapsuleComponent* CapsuleComponent; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Projectile"); UNiagaraSystem* ImpactEffect; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Projectile") TArray> ActorClassesToIgnore; public: AMProjectile(); protected: virtual void BeginPlay() override; UFUNCTION() void HandleBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult); };