134 - Beam Particles
This commit is contained in:
parent
d6557fb499
commit
05ea304d46
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -6,6 +6,7 @@
|
|||
#include "Blaster/Character/BlasterCharacter.h"
|
||||
#include "Engine/SkeletalMeshSocket.h"
|
||||
#include "Kismet/GameplayStatics.h"
|
||||
#include "Particles/ParticleSystemComponent.h"
|
||||
|
||||
void AHitScanWeapon::Fire(const FVector& HitTarget)
|
||||
{
|
||||
|
@ -16,7 +17,7 @@ void AHitScanWeapon::Fire(const FVector& HitTarget)
|
|||
AController* InstigatorController = OwnerPawn->GetController();
|
||||
|
||||
const USkeletalMeshSocket* MuzzleFlashSocket = GetWeaponMesh()->GetSocketByName("MuzzleFlash");
|
||||
if (MuzzleFlashSocket && InstigatorController)
|
||||
if (MuzzleFlashSocket)
|
||||
{
|
||||
FTransform SocketTransform = MuzzleFlashSocket->GetSocketTransform(GetWeaponMesh());
|
||||
FVector Start = SocketTransform.GetLocation();
|
||||
|
@ -32,21 +33,20 @@ void AHitScanWeapon::Fire(const FVector& HitTarget)
|
|||
End,
|
||||
ECC_Visibility
|
||||
);
|
||||
FVector BeamEnd = End;
|
||||
if (FireHit.bBlockingHit)
|
||||
{
|
||||
BeamEnd = FireHit.ImpactPoint;
|
||||
ABlasterCharacter* BlasterCharacter = Cast<ABlasterCharacter>(FireHit.GetActor());
|
||||
if (BlasterCharacter)
|
||||
if (BlasterCharacter && HasAuthority() && InstigatorController)
|
||||
{
|
||||
if (HasAuthority())
|
||||
{
|
||||
UGameplayStatics::ApplyDamage(
|
||||
BlasterCharacter,
|
||||
Damage,
|
||||
InstigatorController,
|
||||
this,
|
||||
UDamageType::StaticClass()
|
||||
);
|
||||
}
|
||||
UGameplayStatics::ApplyDamage(
|
||||
BlasterCharacter,
|
||||
Damage,
|
||||
InstigatorController,
|
||||
this,
|
||||
UDamageType::StaticClass()
|
||||
);
|
||||
}
|
||||
|
||||
if (ImpactParticles)
|
||||
|
@ -59,6 +59,19 @@ void AHitScanWeapon::Fire(const FVector& HitTarget)
|
|||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (BeamParticles)
|
||||
{
|
||||
UParticleSystemComponent* Beam = UGameplayStatics::SpawnEmitterAtLocation(
|
||||
World,
|
||||
BeamParticles,
|
||||
SocketTransform
|
||||
);
|
||||
if (Beam)
|
||||
{
|
||||
Beam->SetVectorParameter(FName("Target"), BeamEnd);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,5 +24,9 @@ private:
|
|||
float Damage = 20.f;
|
||||
|
||||
UPROPERTY(EditAnywhere)
|
||||
class UParticleSystem* ImpactParticles;
|
||||
UParticleSystem* ImpactParticles;
|
||||
|
||||
UPROPERTY(EditAnywhere)
|
||||
UParticleSystem* BeamParticles;
|
||||
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue