From e70f96df2ccf6e7c46a1e0c1d4c6b7c4409ee9c6 Mon Sep 17 00:00:00 2001 From: Kubson96 <42842162+Kubson96@users.noreply.github.com> Date: Sat, 15 Mar 2025 13:48:39 +0100 Subject: [PATCH] fix: fixed linetrace after locking character pitch Fixed linetrace, because it was follow only horizontal axis after locking character pitch. Added empty GunBase class with BP revolver item. --- .../Player/BP_ExoPlayerCharacter.uasset | Bin 24063 -> 24133 bytes Content/Blueprints/Items/RevolverGun.uasset | Bin 0 -> 37845 bytes Content/Levels/TestMap.umap | Bin 43284 -> 44511 bytes .../Components/ShootingComponent.cpp | 15 +++++++--- Source/Exo/Private/Items/GunBase.cpp | 27 ++++++++++++++++++ .../Private/Player/InteractionComponent.cpp | 9 +++++- Source/Exo/Public/Items/GunBase.h | 26 +++++++++++++++++ .../Exo/Public/Player/InteractionComponent.h | 2 +- 8 files changed, 73 insertions(+), 6 deletions(-) create mode 100644 Content/Blueprints/Items/RevolverGun.uasset create mode 100644 Source/Exo/Private/Items/GunBase.cpp create mode 100644 Source/Exo/Public/Items/GunBase.h diff --git a/Content/Blueprints/Characters/Player/BP_ExoPlayerCharacter.uasset b/Content/Blueprints/Characters/Player/BP_ExoPlayerCharacter.uasset index fdc8d4c036106733cd1dff11fd6730090666461f..379559b7f315399bd4efa50136e780328d41dd80 100644 GIT binary patch delta 4761 zcmd5jO&48W}rTs zCd8y%AqYE&`Y=Aj_;eM@k^}GmTy^+h`gfNW9GMyz_Pd8B?x;MF5Xt`HcqmBr6lXu& zkqt8)(}c*}j9rsFK)L1iowbC0p(=u~k#*pAjg?uJF_4ykj6Z5rV=)}zs0xm$UV z;y0JY8RJapErSX->Y5oLWUDRG5<|KjxmvsG6^leMU$w8nNk_<)u6nfLZqo@s;)mNEyL3ToaIw*zp|X_y>9lWt`~+!WG=M`^8uaPAzq?(}NB{pj@>1}a_# zj~3E+`j^`lcYQf7ju^C-lyWng!`lQnAwOtwm>&#wk#Dhze(G1*JZcn~4 zWt8cxM|7GeGz#TCwGkJ!2-fpYyaEYLhvI+}5unf{=xKa2V=txp=g+kzu0*h!{7@_)d6EH1 z*ia%zX#p}Zr^C#HxlKl+`)ie_>2xbhK z(->C@TvME{P6cH!u54&+gwU(4a!cgvUk`nJukMw_Z`@iH`Lf2Gnz>CLbLao#a~ z#nV)`DN9t(2Ui-LDNm{1GI+Dj9h-2P8XZlV6a@HtJYm z3_}LcE1X*j-&W7}jDxA67*i@1&s?nL;7Z$*w^CVHz7AIq7=u}S%fF#^Jj|Y}A!a|T ziO=j0RZ%#-b_`~rv$jb3;YjU@lyWucGPqj%pL1Wu!Il08+@F#EC+_do6ZgsCxZEe* z#pAAus~5fxkF^SKuPc(%;qtoj6g~rr=nT+zz$^$iRC?wq;&_j-U7WMRZ@UBdLdyry z<2UZAMw()Q=75gIF(y#K5h=^b_|Sob>m@w+kkENL(7!vXf2HUHFqKA8V!%Q;*_4-K zv7drAdLX#k*?v<)!o-CTqB=1N2JVyg&U?zWj?ZZLxYqqxV+Jy#c?Uw#_rDTv5?g*6r48o#GkqmK+s%kBYV2LA_J5aO*;VhTT6!cK(!w8X5J}EHvORZ z4E69{`#V;oTMb%3`u~h>A0!Qi60?=Y3oZ<|&GKweeJ()G$vEWyY|98PRu+73jUBvv opD-tDZj&Eg@^!)6)h6e9Gs>47OV&iV*^vBgjcIyiaDG$8Uo}QdMF0Q* delta 5245 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 bM`ytMoynNhNIkLZNe-vGhV|23@$>%=Oqn$4 diff --git a/Source/Exo/Private/Characters/Components/ShootingComponent.cpp b/Source/Exo/Private/Characters/Components/ShootingComponent.cpp index 1945e58..28d4447 100644 --- a/Source/Exo/Private/Characters/Components/ShootingComponent.cpp +++ b/Source/Exo/Private/Characters/Components/ShootingComponent.cpp @@ -26,26 +26,33 @@ void UShootingComponent::BeginPlay() void UShootingComponent::Shoot() { if (CurrentAmmo == 0 || bIsReloading || !bCanShoot) return; + + APawn* PawnOwner = Cast(PlayerCharacter); + if (!PawnOwner || !PawnOwner->GetController()) return; bCanShoot = false; CurrentAmmo--; + FVector ViewLocation; + FRotator ViewRotation; + PawnOwner->GetController()->GetPlayerViewPoint(ViewLocation, ViewRotation); + + FVector ForwardVector = ViewRotation.Vector(); FVector LineStart = PlayerCharacter->GetActorLocation(); - FVector ForwardVector = PlayerCharacter->GetActorForwardVector(); FVector LineEnd = LineStart + (ForwardVector * MaxRange); FHitResult HitResult; FCollisionQueryParams QueryParams; QueryParams.AddIgnoredActor(PlayerCharacter); - // Strza³ + // Strza� bool bHit = GetWorld()->LineTraceSingleByChannel(HitResult, LineStart, LineEnd, ECC_Visibility, QueryParams); if (bHit && HitResult.GetActor() && HitResult.GetActor()->Implements()) { IDamageable::Execute_TakeDamage(HitResult.GetActor(), DamageValue); - UE_LOG(LogTemp, Display, TEXT("Shoot. Ammo: %d/%d"), CurrentAmmo, MaxAmmo); // Docelowo tutaj wywo³anie UI aktualizuj¹ce stan ammo + UE_LOG(LogTemp, Display, TEXT("Shoot. Ammo: %d/%d"), CurrentAmmo, MaxAmmo); // Docelowo tutaj wywo�anie UI aktualizuj�ce stan ammo } PlayerCharacter->GetWorldTimerManager().SetTimer(ShootCooldownTimer, this, &UShootingComponent::ResetFireCooldown, FireRateCooldown, false); @@ -71,7 +78,7 @@ void UShootingComponent::Reload() CurrentAmmo = MaxAmmo; PlayerCharacter->GetWorldTimerManager().SetTimer(ReloadTimer, this, &UShootingComponent::ReloadCompleted, ReloadTime, false); - UE_LOG(LogTemp, Display, TEXT("Reloaded. Ammo: %d/%d"), CurrentAmmo, MaxAmmo); // Docelowo tutaj wywo³anie UI aktualizuj¹ce stan ammo + UE_LOG(LogTemp, Display, TEXT("Reloaded. Ammo: %d/%d"), CurrentAmmo, MaxAmmo); // Docelowo tutaj wywo�anie UI aktualizuj�ce stan ammo } void UShootingComponent::ResetFireCooldown() diff --git a/Source/Exo/Private/Items/GunBase.cpp b/Source/Exo/Private/Items/GunBase.cpp new file mode 100644 index 0000000..8d66773 --- /dev/null +++ b/Source/Exo/Private/Items/GunBase.cpp @@ -0,0 +1,27 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Items/GunBase.h" + +// Sets default values +AGunBase::AGunBase() +{ + // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it. + PrimaryActorTick.bCanEverTick = true; + +} + +// Called when the game starts or when spawned +void AGunBase::BeginPlay() +{ + Super::BeginPlay(); + +} + +// Called every frame +void AGunBase::Tick(float DeltaTime) +{ + Super::Tick(DeltaTime); + +} + diff --git a/Source/Exo/Private/Player/InteractionComponent.cpp b/Source/Exo/Private/Player/InteractionComponent.cpp index 2344ce4..0b01ae0 100644 --- a/Source/Exo/Private/Player/InteractionComponent.cpp +++ b/Source/Exo/Private/Player/InteractionComponent.cpp @@ -15,9 +15,16 @@ void UInteractionComponent::BeginPlay() void UInteractionComponent::CheckForInteractable() { AActor* Owner = GetOwner(); + APawn* PawnOwner = Cast(Owner); + if (!PawnOwner || !PawnOwner->GetController()) return; + + FVector ViewLocation; + FRotator ViewRotation; + PawnOwner->GetController()->GetPlayerViewPoint(ViewLocation, ViewRotation); + + FVector ForwardVector = ViewRotation.Vector(); FVector LineStart = Owner->GetActorLocation(); - FVector ForwardVector = Owner->GetActorForwardVector(); FVector LineEnd = LineStart + (ForwardVector * InteractionDistance); FHitResult HitResult; diff --git a/Source/Exo/Public/Items/GunBase.h b/Source/Exo/Public/Items/GunBase.h new file mode 100644 index 0000000..b5c1f97 --- /dev/null +++ b/Source/Exo/Public/Items/GunBase.h @@ -0,0 +1,26 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/Actor.h" +#include "GunBase.generated.h" + +UCLASS() +class EXO_API AGunBase : public AActor +{ + GENERATED_BODY() + +public: + // Sets default values for this actor's properties + AGunBase(); + +protected: + // Called when the game starts or when spawned + virtual void BeginPlay() override; + +public: + // Called every frame + virtual void Tick(float DeltaTime) override; + +}; diff --git a/Source/Exo/Public/Player/InteractionComponent.h b/Source/Exo/Public/Player/InteractionComponent.h index a8b7a07..ad8656a 100644 --- a/Source/Exo/Public/Player/InteractionComponent.h +++ b/Source/Exo/Public/Player/InteractionComponent.h @@ -16,7 +16,7 @@ public: UInteractionComponent(); UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Settings") - float InteractionDistance = 100.0f; + float InteractionDistance = 135.0f; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Debug") bool bShowDebugLine = false;