74 - Projectile Tracer
This commit is contained in:
parent
a3cc71b200
commit
780a9163f1
Binary file not shown.
Binary file not shown.
|
@ -5,12 +5,14 @@
|
|||
|
||||
#include "Components/BoxComponent.h"
|
||||
#include "GameFramework/ProjectileMovementComponent.h"
|
||||
#include "Kismet/GameplayStatics.h"
|
||||
|
||||
AProjectile::AProjectile()
|
||||
{
|
||||
PrimaryActorTick.bCanEverTick = true;
|
||||
bReplicates = true;
|
||||
|
||||
CollisionBox = CreateDefaultSubobject<UBoxComponent>(TEXT("CollisionBox"));\
|
||||
CollisionBox = CreateDefaultSubobject<UBoxComponent>(TEXT("CollisionBox"));
|
||||
SetRootComponent(CollisionBox);
|
||||
CollisionBox->SetCollisionObjectType(ECollisionChannel::ECC_WorldDynamic);
|
||||
CollisionBox->SetCollisionEnabled(ECollisionEnabled::QueryAndPhysics);
|
||||
|
@ -26,11 +28,20 @@ void AProjectile::BeginPlay()
|
|||
{
|
||||
Super::BeginPlay();
|
||||
|
||||
if (Tracer)
|
||||
{
|
||||
TracerComponent = UGameplayStatics::SpawnEmitterAttached(
|
||||
Tracer,
|
||||
CollisionBox,
|
||||
FName(),
|
||||
GetActorLocation(),
|
||||
GetActorRotation(),
|
||||
EAttachLocation::KeepWorldPosition
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
void AProjectile::Tick(float DeltaTime)
|
||||
{
|
||||
Super::Tick(DeltaTime);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
#include "CoreMinimal.h"
|
||||
#include "GameFramework/Actor.h"
|
||||
#include "Particles/ParticleSystemComponent.h"
|
||||
#include "Projectile.generated.h"
|
||||
|
||||
UCLASS()
|
||||
|
@ -25,4 +26,9 @@ public:
|
|||
|
||||
UPROPERTY(VisibleAnywhere)
|
||||
class UProjectileMovementComponent* ProjectileMovementComponent;
|
||||
|
||||
UPROPERTY(EditAnywhere)
|
||||
class UParticleSystem* Tracer;
|
||||
|
||||
class UParticleSystemComponent* TracerComponent;
|
||||
};
|
||||
|
|
|
@ -10,6 +10,8 @@ void AProjectileWeapon::Fire(const FVector& HitTarget)
|
|||
{
|
||||
Super::Fire(HitTarget);
|
||||
|
||||
if (!HasAuthority()) return;
|
||||
|
||||
APawn* InstigatorPawn = Cast<APawn>(GetOwner());
|
||||
const USkeletalMeshSocket* MuzzleFlashSocket = GetWeaponMesh()->GetSocketByName(FName("MuzzleFlash"));
|
||||
if (MuzzleFlashSocket)
|
||||
|
|
Loading…
Reference in New Issue