From 53a50536f1dbb533fd5ce05d79a88d36d61bc62a Mon Sep 17 00:00:00 2001 From: Kingsmedia Date: Thu, 5 May 2022 00:39:17 +0200 Subject: [PATCH] 71 - The Hit Target --- .../Character/BP_BlasterCharacter.uasset | Bin 53019 -> 53112 bytes Source/Blaster/Character/BlasterCharacter.cpp | 2 +- Source/Blaster/Components/CombatComponent.cpp | 51 +++++++++++++++++- Source/Blaster/Components/CombatComponent.h | 3 ++ 4 files changed, 54 insertions(+), 2 deletions(-) diff --git a/Content/Blueprints/Character/BP_BlasterCharacter.uasset b/Content/Blueprints/Character/BP_BlasterCharacter.uasset index 8d48531f6588250069aafa4f37262d9b847fdc2c..ab88639af7ffdabb0996101b4913cf0e0813e990 100644 GIT binary patch delta 10694 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 diff --git a/Source/Blaster/Character/BlasterCharacter.cpp b/Source/Blaster/Character/BlasterCharacter.cpp index 8c7a501..a55b381 100644 --- a/Source/Blaster/Character/BlasterCharacter.cpp +++ b/Source/Blaster/Character/BlasterCharacter.cpp @@ -20,7 +20,7 @@ ABlasterCharacter::ABlasterCharacter() CameraBoom = CreateDefaultSubobject(TEXT("CameraBoom")); CameraBoom->SetupAttachment(GetMesh()); - CameraBoom->TargetArmLength = 600.f; + CameraBoom->TargetArmLength = 350.f; CameraBoom->bUsePawnControlRotation = true; FollowCamera = CreateDefaultSubobject(TEXT("FollowCamera")); diff --git a/Source/Blaster/Components/CombatComponent.cpp b/Source/Blaster/Components/CombatComponent.cpp index a483adf..432e7b5 100644 --- a/Source/Blaster/Components/CombatComponent.cpp +++ b/Source/Blaster/Components/CombatComponent.cpp @@ -7,11 +7,12 @@ #include "Blaster/Weapon/Weapon.h" #include "Engine/SkeletalMeshSocket.h" #include "GameFramework/CharacterMovementComponent.h" +#include "Kismet/GameplayStatics.h" #include "Net/UnrealNetwork.h" UCombatComponent::UCombatComponent() { - PrimaryComponentTick.bCanEverTick = false; + PrimaryComponentTick.bCanEverTick = true; BaseWalkSpeed = 600.f; AimWalkSpeed = 350.f; @@ -73,6 +74,52 @@ void UCombatComponent::FireButtonPressed(bool bPressed) } } +void UCombatComponent::TraceUnderCrosshairs(FHitResult& TraceHitResult) +{ + FVector2d ViewPortSize; + if (GEngine && GEngine->GameViewport) + { + GEngine->GameViewport->GetViewportSize(ViewPortSize); + } + + FVector2d CrosshairLocation(ViewPortSize.X / 2.f, ViewPortSize.Y / 2.0f); + FVector CrosshairWorldPosition; + FVector CrosshairWorldDirection; + bool bScreenToWorld = UGameplayStatics::DeprojectScreenToWorld( + UGameplayStatics::GetPlayerController(this, 0), + CrosshairLocation, + CrosshairWorldPosition, + CrosshairWorldDirection + ); + + if (bScreenToWorld) + { + FVector Start = CrosshairWorldPosition; + FVector End = Start + CrosshairWorldDirection * TRACE_LENGTH; + + GetWorld()->LineTraceSingleByChannel( + TraceHitResult, + Start, + End, + ECollisionChannel::ECC_Visibility + ); + if (!TraceHitResult.bBlockingHit) + { + TraceHitResult.ImpactPoint = End; + } + else + { + DrawDebugSphere( + GetWorld(), + TraceHitResult.ImpactPoint, + 12.f, + 12, + FColor::Red + ); + } + } +} + void UCombatComponent::ServerFire_Implementation() { MulticastFire(); @@ -92,6 +139,8 @@ void UCombatComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActo { Super::TickComponent(DeltaTime, TickType, ThisTickFunction); + FHitResult HitResult; + TraceUnderCrosshairs(HitResult); } void UCombatComponent::EquipWeapon(AWeapon* WeaponToEquip) diff --git a/Source/Blaster/Components/CombatComponent.h b/Source/Blaster/Components/CombatComponent.h index 0be7800..764dda3 100644 --- a/Source/Blaster/Components/CombatComponent.h +++ b/Source/Blaster/Components/CombatComponent.h @@ -6,6 +6,7 @@ #include "Components/ActorComponent.h" #include "CombatComponent.generated.h" +#define TRACE_LENGTH 80000 UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) ) class BLASTER_API UCombatComponent : public UActorComponent @@ -38,6 +39,8 @@ protected: UFUNCTION(NetMulticast, Reliable) void MulticastFire(); + + void TraceUnderCrosshairs(FHitResult& TraceHitResult); private: class ABlasterCharacter* Character;