From c9a138e1ab9ed65986a419d41500262173eb1fbd Mon Sep 17 00:00:00 2001 From: Foxim Date: Fri, 7 Mar 2025 11:11:22 +0100 Subject: [PATCH] fix: initialize components in constructor to prevent crash --- .../Player/BP_ExoPlayerCharacter.uasset | Bin 26879 -> 24915 bytes .../Private/Characters/ExoPlayerCharacter.cpp | 9 ++++++++- .../Private/Player/ExoPlayerController.cpp | 2 +- .../Public/Characters/ExoPlayerCharacter.h | 9 +++++++++ 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Content/Blueprints/Characters/Player/BP_ExoPlayerCharacter.uasset b/Content/Blueprints/Characters/Player/BP_ExoPlayerCharacter.uasset index 1ef6fd700452f3b5c30fd9d5af1f01dfb114cfb5..641feaa17cc7cb64e8032c5f3690cbd20a72e91f 100644 GIT binary patch delta 5598 zcmcIndvKK16~A9tViw7RB>QD|lPq~`A;Dl(AV?y4EC#ZRl8`4v5;u>PjbMl|*sAD8 zMZ}?0@u;;A$M8p|qf;2#o!U-IXVMOxu`_jsPD|^E&lyX7&7d8M)L|OW`SzTTWxw4e zbfzbKd+v9CzkANP=bn4-$LycAzx-Z1R;FdF^})`J#(br0>M5nvScX#gPo2+!(<4i} zv1Ldh{(fGdlm~TFu2SR0N@>{s4D~sD@=BDNefg39{Biu>Eia$zJUBVO_*cKJoP2ln z>xbHoX4mRl-p+ZC_+;lPIIDG5?72k|vdW>MDqlp4jp%0U>(IPmj%Cu}wczQWJ4 z9k!)=j?6~iyykEQ99Yl@fn0a=^n$-;z^UxVVRz1P7|ku$3gAHQvIs_M$hG*}a(`%S za>K;ncv$V=?)j`gL4RZ1_Om7>JaSAzy!&HKm5g^EW5k=pc7)#JiFY$$H|vj(_z<_R z#50V|!QRv*doo0+M92R`$B$ehaw|FS(K+%Sv+&S=qT@5@_#O)}IZu`+U1rGMu2lAD z{*r1Uj;A6f@MOKOJPXbY=LIopggO4^>1VpxV^@2!0#h`J$F$wuWddH!S2&u?FyK!;m`G zrX^ZWIp-plp_JBuV=x9zOIt zZ?OKcnJvt|fwkCDZ~UpIQRa}&p|g}?OY1Z;Gj#B+3;TD>2xJW zBnxFmMtgH1gNs;SQrX;;O9Vj9B^O27~U;!=vVT?Qx! z=(%PLH*>dT0@UA^4h*LP>Fd2I6-d{VOR0VXw>YJBaHJYaX97JWmXVa@%?5N~_`p$sx0TH<_dqoqYb%1a z?F;fvo~%*nJ9K66IY$$m$jKYcw>u8tAp{b!n^*j zS-Xm)E&9zW{dmJ_J@D%OpZxvpeG5-;y0ym0z?w7fJaiX7<>YLc3XJaI(v_D0!viZly{o+nRKuaHJyyUv5oT zDc|ku)+&tYUFfT^ckuMSY1UFDjNZ}Wx{3QG2B}`_rt_t&rI4hKwb&4wm+yd{Z8WdL zdI3DREnWOr>BwvBFUptkbO%jN><+2b5bpQ5J?zfxrY%axi3g_powr(G`p7Zh#Buaa z-w#RrTLXz6^R?W1GuI|m<7&9HN%S{sDt2kJB(P7XLUcl6A_pr%zq zYp_&fIQmSmQ$st>5nsO8p{Tn?hj*AJUKpu|mxi+P>GUTtr{#uU4n2(qHw-TpgK%hg z-<9n(YMbD1BQ^KX*9VF9P?H*s;Yt;AL#`vaHPu<%SMtej0V!{EO_1CPyF#m6cg0@J zqg*l@`Px# delta 6869 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 H^w$3u@{gB{ diff --git a/Source/Exo/Private/Characters/ExoPlayerCharacter.cpp b/Source/Exo/Private/Characters/ExoPlayerCharacter.cpp index 3bdcc61..65c2dd0 100644 --- a/Source/Exo/Private/Characters/ExoPlayerCharacter.cpp +++ b/Source/Exo/Private/Characters/ExoPlayerCharacter.cpp @@ -2,12 +2,19 @@ #include "Characters/ExoPlayerCharacter.h" + +#include "Characters/Components/ShootingComponent.h" #include "GameFramework/CharacterMovementComponent.h" +#include "Player/InteractionComponent.h" AExoPlayerCharacter::AExoPlayerCharacter() { GetCharacterMovement()->bSnapToPlaneAtStart = true; + InteractionComponent = CreateDefaultSubobject(TEXT("Interaction Component")); + + ShootingComponent = CreateDefaultSubobject(TEXT("Shooting Component")); + bUseControllerRotationPitch = true; bUseControllerRotationYaw = true; bUseControllerRotationRoll = false; @@ -16,5 +23,5 @@ AExoPlayerCharacter::AExoPlayerCharacter() void AExoPlayerCharacter::BeginPlay() { Super::BeginPlay(); - + check(InteractionComponent && ShootingComponent); } diff --git a/Source/Exo/Private/Player/ExoPlayerController.cpp b/Source/Exo/Private/Player/ExoPlayerController.cpp index f818b26..143fc80 100644 --- a/Source/Exo/Private/Player/ExoPlayerController.cpp +++ b/Source/Exo/Private/Player/ExoPlayerController.cpp @@ -31,7 +31,7 @@ void AExoPlayerController::BeginPlay() InteractionComponent = PlayerCharacter->FindComponentByClass(); ShootingComponent = PlayerCharacter->FindComponentByClass(); - // Ustawianie w komponencie poruszania prędkości zapisanej w characterze + // Ustawianie w komponencie poruszania prďż˝dkoďż˝ci zapisanej w characterze PlayerCharacter->GetCharacterMovement()->MaxWalkSpeed = PlayerCharacter->WalkSpeed; } diff --git a/Source/Exo/Public/Characters/ExoPlayerCharacter.h b/Source/Exo/Public/Characters/ExoPlayerCharacter.h index a4e0388..5c290f0 100644 --- a/Source/Exo/Public/Characters/ExoPlayerCharacter.h +++ b/Source/Exo/Public/Characters/ExoPlayerCharacter.h @@ -6,6 +6,9 @@ #include "Characters/ExoCharacterBase.h" #include "ExoPlayerCharacter.generated.h" +class UInteractionComponent; +class UShootingComponent; + UCLASS() class EXO_API AExoPlayerCharacter : public AExoCharacterBase { @@ -14,6 +17,12 @@ class EXO_API AExoPlayerCharacter : public AExoCharacterBase public: AExoPlayerCharacter(); + UPROPERTY(VisibleAnywhere, BlueprintReadOnly) + TObjectPtr InteractionComponent; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly) + TObjectPtr ShootingComponent; + UPROPERTY(EditAnywhere, Category = "Dodge Properties") float DodgeForce = 5000.f;