From f14e3ebf80aa3470a94ffce98951b5bd44c8c7c1 Mon Sep 17 00:00:00 2001 From: Filipe Freire Date: Mon, 7 Aug 2023 23:29:42 +0100 Subject: [PATCH] refactor weapon code attach weapon to player with code instead of BP --- Config/DefaultInput.ini | 2 + Content/Blueprints/PlayerPawn.uasset | Bin 71322 -> 69887 bytes Content/Maps/P_TestMap.umap | Bin 61999 -> 62322 bytes Source/CoopGameFleep/Private/SCharacter.cpp | 24 ++++++++++ Source/CoopGameFleep/Private/SWeapon.cpp | 46 ++++++++------------ Source/CoopGameFleep/Public/SCharacter.h | 12 +++++ Source/CoopGameFleep/Public/SWeapon.h | 12 ++--- 7 files changed, 59 insertions(+), 37 deletions(-) diff --git a/Config/DefaultInput.ini b/Config/DefaultInput.ini index 8b28963..2bf091e 100644 --- a/Config/DefaultInput.ini +++ b/Config/DefaultInput.ini @@ -72,6 +72,7 @@ bCaptureMouseOnLaunch=True bEnableLegacyInputScales=True bEnableMotionControls=True bFilterInputByPlatformUser=False +bEnableInputDeviceSubsystem=True bShouldFlushPressedKeysOnViewportFocusLost=True bEnableDynamicComponentInputBinding=True bAlwaysShowTouchInterface=False @@ -86,6 +87,7 @@ DoubleClickTime=0.200000 +ActionMappings=(ActionName="Crouch",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=C) +ActionMappings=(ActionName="Jump",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=SpaceBar) +ActionMappings=(ActionName="Zoom",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=RightMouseButton) ++ActionMappings=(ActionName="Fire",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=LeftMouseButton) +AxisMappings=(AxisName="MoveForward",Scale=1.000000,Key=W) +AxisMappings=(AxisName="MoveForward",Scale=-1.000000,Key=S) +AxisMappings=(AxisName="MoveRight",Scale=1.000000,Key=D) diff --git a/Content/Blueprints/PlayerPawn.uasset b/Content/Blueprints/PlayerPawn.uasset index d28e4156aa3ce61728e6c07d878c4f45827cf360..77211f48a8cb0292bc2aa849765a6301808bbbf3 100644 GIT binary patch literal 69887 zcmeFa2V4|M&^S6P2#A<5ASz%4GdXxF8OhmziY~CgDzLCD(FCSb%!=rNnPfQR^iVM8 zd?yHq9*PMR0rQ#TtD2eKU83vVegF5p_xlelGt*sNU0q$NYns_p3kGj_|Lxni>2egM z+=`-J!WoZt@Y%ZTedo^(QAg);^ejJQ&LQUiaE`+;!kiTScwpqWO8;p-@((ck{P)u1huY z=NA6D!{LjOGL-dFuRQpq)7IieTjwr%5dMpR17%}Hp9>SLf3v!)x@KLZX7BC;pv=-Y z?WV2svHm-M?YuCqd%#^CD0>?GTUCu^^6R$cx;re6*bdi*vS5Fu>WNPMW`?VqE?na~ zu$uyuP8_FAD84|?{7xKeIkt5tfxN$t88#g8lYUQct@Yfyq2fx(t9u%bo zXMI~+TRj6~YXe(rQ%gfDBMSq4T>}#nqmlY1mKK&a#sI<`ec*JjA4S>2ITjjgj-V(U z%5SB@(1(TJISA_S)f97rc7f%u6y0P;)vo$~oJ<@NQd#M?6SKYaoL| znV(+H=?r&6hIrc;4)NfH@VJq@VTQx?=z5CEc{{(EdT2x+o5$RGfEP!g|0^A_2gw04 z^9`Ak1x1BYb>Cx_eU8_-w$R4HUnCGZas7B9RCagawDwpO5a1;k&*#O23xp!-(uH{@ zUFgziZkRtWz>Obf&5sNRwo`MvKUYKnun6OaT7_^UBdPUgY`5T8ErdKSUE&(e6AJkO zJSySuI~*FhP{@sQ6AHq4LQx!L|63)$0}U?}#8?SJ!v$fyFcIbL6*vYZ-$Eqf`Uksl zg;+TJ+s-P4^|J^G5yV&nA4PmY81?OC`?{`J49!CU&N9l+FN6nFhVcTZh~WdAx;3gC z&yVB-4CUVcr=L(T>o;X z)FKZp;YQ5wj`F`H;r#fKdBI`OZ0z`U^N&th26;XcoXYT`TqWoY`4Eff)KyFls$ki_r z<~4*TmJ;ga+tDVf2nx)P;)d|!c@kmR^RrPoJ;4)rApxHJ(5Miuh!6l_)0i zR8OoEgoJ?X3c|*5!vaD8ADKofdq(y)wC$`CP?yz?ZbfAgvynlo`}M6i-91q?FJ369 zGVrc+ci+>f%T}%~*3(=-4XM0$dO9?UC?V>f<^&!W)RS7a&Rd8*;p98=;;42fq9$WQ zyl1#+^LX}F8iJW^D)F0O46>4)eLEpHJlI75HX-l9qiCrLPk&w*&qE*(QAd|=X^m6P zwh&j)t<2nxJw$%9l}w)<&%f5kSqT8M5QO7-_bGK1sw-=&=t+rR|Hu+YWD`Ks05*bF zo4YZqZP3Em1n@zytOfp2I3f07fdcBtw2q&ULZ-^qZwAj_-D zLP0>npgHR1QTc$2$YUF%)*?V`H6tlrqKXzyW1|`~vvK@@0A3h%BQNMQ+Jz<{Jc9+` zA_>I8(1b-&);ijwkvpVVLR_ZL=dMT`dU(olz@r=3+73iQ2=f`h z$nRpMiC!pdG&0(f?wEfi8vBNlXuc@U)1M25ecigVFKJY0YpvWq1|uq9F^|e?W zAD=`{+J{Ao_#iR@A*EuwEER($ysjvM#4r=9NDI>FZ^~bg&@H7-!}s5UV6LdCLA@(ds#IBSrOvFOpK})2avs+DYKg zrNt^@_HUdc+V^Ad8yA_E1&Q0jC3t2aoVGdEmJo?&ugA`aJ? z7YY+gv+k`&grcN~9@uh?-w$FZ3>52l=hn>m32hluD4DRi2M>)!E<5uggQ>qYB64U- zSifL_exC9O?0f^Zsk)BZ;8VHrKvYro3x!Lee&I37PJ zSVaBmnfsQ&xCtUBQs*WwX(d%Ki4xjA<)IPAMv>H^uW2DjFy2kz2Y?X>3FB8I!L+%2 zEqAV+BHRdQBSG;TH+(~>V{HZrcr0%HUW;_NMv20sMAPheBFZixG?j*=i!iRC4VX&k zT4(IsH3l?*+A>Hf4o41mVD=e}r1oasdE6Tc-MIcUxj{UX3~-&axFFji!?~dIokej= zkS=yIN7a=qM{Y5@@M#mn6M6~I9MD>4E5zyX+VN8=PB)nv z+YoM0By~&BXTNkQvObbJ9Mk$D8c`3PKM!W#k{84e!>*{rIewR!3Pvu7Xj4nvx(=1D z@DPX?B{*`lLI>5!gBKpcXB0zXcm*eZUXHy(rHeqs4~#<_Ln)?}uEhaM`}=fJ-y|9m zoQ*^sRr9&2IRE0_ELX=~K&F!dTICjKcw9lVNf(0ANa7#5iQ3`GjphYl)a)7<7zxul z`{EO8ak-B`5NZ)Bhyueht=o!AIIoPQy5f=^jY37=(fA!E9EryH^7Iepg>tEHN0!B) zj736VMNQkW!U5d_L_y&glYr?GM$z$`CmpI$szW?9kzx!#K@me})m)KyKaeS;gJO$F zBrn@=#b%syPl5kTo`_cdO$&a#hl1!S2!s$#?CR!izqOq%4u?gS#K<^3tWHNBdg4MX z$U+#3jHDKwSl8|Ku ziJ?YPn?55ey|@rri=ZnfURV(5-`MRAGjU*E5N(Qq&zgzykzt}>@TZCUiW87Xui&Uq zzc2{qX|KNDN&k18LN5r7z4+nOfm+4mC{^OY(X#;&Zm=ML>dJ}wj5IY+fIj^7Cg{f` z#Uzq8{r2D?X%K`C)D3hqlIq!Shdx~lPQ%DROs;SEln@N`Ax0K9F`>@CPp6PnFn6>a zTc~@M4z!8+qYL+>%q>S+NTI|;|Gmt*9ow9q;;*w6blH14^syV{q>TI@4{;61a#k<- z0Mr2HR?nL99vRXG>wR2>0bqr^y3_?5!7Z~2$7LTo&uD>0c-t6EbLPUjDBhJW=JHx-vhj<9r_W(TniH-P8F zg$W1-A}cjAIT&R%N)-UC2R{(JrpdeDp~!Ov!rOkt1gNqS3L+zexqKn@<%#xDx|&fc zNw$Hue^kw_+19vH8o^du2?XI7v)G34c;S?BMrJJfbV;p{=gnvn_1=Ei7!(0gXA=gN zkVh>xUu2J3O^RJ0k^vV0u_Uu;D5I&bG;z+Q$}oh0N&MB<{vjGq zaZMO3ctUIfsG;&3l+g0fOMYrtVZTWj?$u*-gK%r((oqU@3n47eDbeSz>1eCO?59*s z_1n?QLXwYZ&|W7kd>ATL<5`+!MfI|9yMY#nObZlgEcvX6if#q$WY%F!J|HM=;W_MC zylSGZ|CK_sQe1-KHj)})SX+q;a!E0}ypmY?CoA&(&}bkCF1~29mGr5o0J$k%U|Ge% z@(M+M%KZ<%yhOP2j}$6LMiaXuWGj9mhJTHA7iq>lmLj z%~6jkIJL1IT3MU0s8DMBnMDFz=-YUri=f3z%t*3QWvywqdw<+O-I4;8Hn!pW$E%}E z&}$h+-KJ)8rlL(E3kFK~>d;c8*HMolm0j1-dn zROBKbbtXQik&#a5PT;V7)E zz2P}N<)F1^<3lRaZb?^^2=-o#Z}ZR$9!@5mMfI0^egu&-QVT9gB!sL3Xo5khh8ps( zo;Y_J>T&{28ZCnoB^%cxU>Y3;;F7++^X*%skVgj|61mr&{gs258G{P(0mL+vW7maC zaMYewo{*1#Y=Le`F`Z|r=Ti&{7QRPilMZ+!WE?a0V4@M}7=B^VstrkWQ{;uV;|9a3*jl zU3i=XxC6{3)f8MlTXzNE3S@x03~+~9fIH0AVZS&jcr?|oCSAkOcY?ic3htN`-0>#h za@eu~?D-<}dr3yPLK)$%$p}|0BV37$aHTTBU6&EAOa{0Mz(4vK2Eaw9GQ!=I5w2VYxO33&?=r#>U1@2&i0`0`_=rw@4yjBrb2gnJ|-T(t~vXF;z1k^$}vz}3kJ_e=)3(}1r?2DnoI zcTq;T`z^p-X6sOo&dUgQMMk(kT7VzQAfWv3fcr>LS1m8`7J4r*;huh1R z5uL#Co@xS)*wb5V9iFmegv*u@Zl{cJyJUphEhF3>8R34F5svVxsriuRAL0G?;BsZ` z_cs~g_Q?phzX>?P1LAYhubycFj_{z8twX<>C?i~rjBx2Pz@a=xH33I>zm%=}6W|`U z07q;n#)(H;fFm{(;Z`;QN9O1$TXzZIp0oh>jIBd^dbSC;S}13WDa@FV*jWemtPEo- za2p3XaFYl5U>RPM15k-^k+PZwWzymPLtNXzalZ-tObzpw^wAXl$58k}s*k&D!!~fv zWE-A8Esd@5bxZiGrEnvEG}z|IpJ?`aCSj};YJ!uTv8pNhA2q;#g2jRO?bz%4{{nwi z1N>x7f%qL*{MzT(3#k*Ko1C$#Df%m=@S`93lf|I~XA-9io50V4)jP?8f3p;RVk7K` zgRO_H@l8|s%cSU6geK_wam+~ne0K1!{{{YMQuyTnrzL#wK-67W{L$E{3`bM+BmQe_ zABdm$d_+Bl#kus749EebDg5tP+=v1BgKJ2{jr`G6fIo0t_>b|U93g%Y<^zZx&#X#bcwfA4Qo_+LxmNBO~A0Kp%`;@?v9Jyf zvna$cr`ao0I8R^^Emmm`qqrG;(G>o>QuJeA#8v6Q^KmS=k6Th@h@ZsNh<_amXd<;enY1N%$r;O=!jC*T2^C-AgX)AI zoCmaZILG+F7hy;_nhbPnC<{mrY5xh@_hHKs-$(c$3|@bL54PzDpDyr0xoHQVuJGvw zAACB~0Y2^FqY9rk@IkuqX$co|i5HI4# zdORZ?ScW*U9`CW7^oeCi6XL*Yr1=ZLVz_{1i2pO(V_(=m!Xg~@hh^9gp#kraPCRg2 zgkK1Q{6ajv;f%PE$I|nK*J^B;I$MwYJPaQ^j=%@o5S)kDdnl3|hy=>Df$(oPzuluc zI@sFVQXDAeU}xWMQC3u2B_(Ag#kR_Al-sGaZP%$+=T03ubn2_tQ?-{){~?35`wtp4 zOwZhS*vQc%2MscDG97JYGtPe85F=M_7h5lLyKy#%grm}~U8fG6v^sazvKc;TxXlkA zke=xThL%Igar#oNI&tJWabU#<>lIFG4tX7<;;P4O1@L;&RV(_3SHc}ihUzg^%B=?SL$cE?^IWhYcKli`w8c_QSR2ghg#18 z0|#mA3^p({GBz=t!J)&a&zwDX{=&semy1hEub17p`B(Y< z2bEP1A5}lDseSqC@7HhMzI*@SBaRElNe*UY4aU_8#??w*UQS*S$Hi$C10T6g@~yRW z6*^nED{>>c^wmpLQng&Oec!1z{q#LvboCQnQ|{K^;QoM@I5c`>vJGthKN^{MV3Ki_ zQ!3z#TXmA_M2)3h?bhCrpzI%&U825goBWO>ZBAYBW@q2zT1qDeF2a(jascQWUsAKI zY^!-|Rd@4F*KAZN&l{O~TTVnLbW76SreN$7YI?XNn93dm7x6`MJ9i{ewx6RFfhNoIBrX@g0^v2D*oW8t*);;74&BX>7<_h%|qk)dDp!PO7Gs~x-O2aTXXaJ*v=0s z&-knzDIceD`;*Ey%3*q}dsp>2wHr&FON)Epg!DS5Q+mC|Wm_xYS!r2~dAkhYxp$pw z)(D?Dl&ZT8HSn74HAhGDcI7(y`AKth52sSbJ&k)hXmd`6RTV!~U0S@^yiJ~mzo75t zaTVGew}`vkk)I-lR^QiQf#pGLfm9r0;D$m*3>0!)qs-ReO z?r3S4dmEmD_W1|;wR7g_PI_RvH>}&J30jHex*sRx)usw(q=uf`w2(8nqq*B27C->)vEbV8WJ^H2H(!KJ&Jx};WY;^cK zd%VlfyQj=3+dt)~{FkkL0+trd?V3L?E9+4D)H7FXCurt+SX@;+p^@W0Xi17eT8wb! z{u{Hq^gg({e9QWwzn@V%yKfvPK;zEE^LF>A#P;&g4g}`8>`3S_*SGb+N{0%59(81e z_NW4ba_>6xwt4P(o;$ZGRQ5`8KEM8WO_rNnK5#Zvl`~+Nad>+8HbqbMU75Fabhp@0 z15}SVt2flGu0Pq%t|zG*Y(h{cw<<&(D3os zc17a_Dwjr{-15Nk^6f9z?{z4QsWx9(TYj&re9r@KmnRm6kM()9W97%zjYuCx7)B@R#)X1wuy5}zdUP%yXHmA_ym^)V(( zPrcokTh95fLi;IYRDIlcUT@C(J-s+d&ZP^B6iw52*zn?ljQ_}*)UW??o^amzqkfMJ zk{(TbFz03Z{ym*mob1znNJZ4B=&x6guPybfvVF2qyS*rxTX| zzaAJ1wabG!d3(xMWF@ydno32fR-9gOI-%?Fnw>QtDo$o#rRTv^qf}6Jk0K6evU};W zcfp)s5aXGk!f8213Ci(su`Y*l?rgAfXVRpN_c*t2o<5n&34c}AjUOTZ?8wvM4o(SAZQUR4d-wd~4gFtd zu886X?)JI!_;!z~C4H73o7ds%0V=B7tKU|q{Iumjs`QLPgAskd&h~zt z6BwJg8vDGGb(zB`V}9ne4LOLS)x@CStwN&?t~+xlzxXxYCd1k&O~Ufk2`<(Cv+Qy00p-sMY&zFFoq{EFtZUwXT0UMuKvF|5i& z-=bBF=CiSjW}Mt%a$2i@%%D9Qp6)rjofZ7n+nMy8SSa_nL#9t+=N^;x4ouj+a;K8q z-vblmijN*SKVj9(2Xl%p%})!cDZ1Bc^m~n*_+l?7;Xo{hsDqZM^T+b;66T8_dtIR5S?dleeNQ z&Ah|y(fkhml0pZ+*(S$N=VxCtSCLa3xVa#{sG^-6)&>JWvYR~4uIl+(K6+b@HfU75 z2qGYdC~BDDVUJ>C2P$;ffML|=4uASCy1!z~qp4lv)?GPt(Jxzmctpay4rNDQj(Gu- z`uyi-=QfRn(~#$Bez~o?EY(dslof7e($g)W8GHcM_QZLtbnK^rtK~VY} z?N+5(&z$U31B^`9U(}pCb>`)tqIhq|s!n<8u}gcBYNh&q)3F;3pAyVSQ+(p(s5_G# zJEym+y1!Iz!6|wFE!ijH&mK9La`n;VxYCS$rgqaT+qbhG^OVv7 n$xP<>FaJcp0 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 G=Km82b64d6 delta 12420 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 T1!OY)x6=3b=~r0w{rvw0^IO*& diff --git a/Source/CoopGameFleep/Private/SCharacter.cpp b/Source/CoopGameFleep/Private/SCharacter.cpp index e316044..1272fce 100644 --- a/Source/CoopGameFleep/Private/SCharacter.cpp +++ b/Source/CoopGameFleep/Private/SCharacter.cpp @@ -5,6 +5,7 @@ #include "Camera/CameraComponent.h" #include "GameFramework/SpringArmComponent.h" #include "GameFramework/PawnMovementComponent.h" +#include "SWeapon.h" // Sets default values ASCharacter::ASCharacter() @@ -21,6 +22,8 @@ ASCharacter::ASCharacter() CameraComp = CreateDefaultSubobject(TEXT("CameraComp")); CameraComp->SetupAttachment(SpringArmComp); + + WeaponAttachSocketName = "WeaponSocket"; } // Called when the game starts or when spawned @@ -31,6 +34,18 @@ void ASCharacter::BeginPlay() DefaultFOV = CameraComp->FieldOfView; ZoomedFOV = 65.f; ZoomInterpSpeed = 20; + + // Spawn a default weapon + FActorSpawnParameters SpawnParams; + SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn; + CurrentWeapon = GetWorld()->SpawnActor(StarterWeaponClass, FVector::ZeroVector, FRotator::ZeroRotator, SpawnParams); + + if (CurrentWeapon) + { + CurrentWeapon->SetOwner(this); + CurrentWeapon->AttachToComponent(GetMesh(), FAttachmentTransformRules::SnapToTargetNotIncludingScale, WeaponAttachSocketName); + } + } void ASCharacter::MoveForward(float Value) @@ -63,6 +78,13 @@ void ASCharacter::EndZoom() bWantsToZoom = false; } +void ASCharacter::Fire() +{ + if (CurrentWeapon) { + CurrentWeapon->Fire(); + } +} + // Called every frame void ASCharacter::Tick(float DeltaTime) { @@ -94,6 +116,8 @@ void ASCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponen PlayerInputComponent->BindAction("Zoom", IE_Pressed, this, &ASCharacter::BeginZoom); PlayerInputComponent->BindAction("Zoom", IE_Released, this, &ASCharacter::EndZoom); + + PlayerInputComponent->BindAction("Fire", IE_Pressed, this, &ASCharacter::Fire); } FVector ASCharacter::GetPawnViewLocation() const diff --git a/Source/CoopGameFleep/Private/SWeapon.cpp b/Source/CoopGameFleep/Private/SWeapon.cpp index 2cc28e8..0da6e53 100644 --- a/Source/CoopGameFleep/Private/SWeapon.cpp +++ b/Source/CoopGameFleep/Private/SWeapon.cpp @@ -14,9 +14,6 @@ FAutoConsoleVariableRef CVarDebugWeapon(TEXT("COOP.DebugWeapons"), DebugWeaponDr // Sets default values ASWeapon::ASWeapon() { - // 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; - MeshComp = CreateDefaultSubobject(TEXT("MeshComp")); RootComponent = MeshComp; @@ -25,13 +22,6 @@ ASWeapon::ASWeapon() } -// Called when the game starts or when spawned -void ASWeapon::BeginPlay() -{ - Super::BeginPlay(); - -} - void ASWeapon::Fire() { // trace the world from pawn eyes to crosshair location @@ -76,31 +66,29 @@ void ASWeapon::Fire() if (DebugWeaponDrawing != 0) { DrawDebugLine(GetWorld(), EyeLocation, TraceEnd, FColor::White, false, 1.0f, 0, 1.0f); } - - if (MuzzleEffect) - { - UGameplayStatics::SpawnEmitterAttached(MuzzleEffect, MeshComp, MuzzleSocketName); - } + PlayFireEffects(TracerEndpoint); + } +} +void ASWeapon::PlayFireEffects(FVector TracerEnd) +{ - if (TracerEffect) + if (MuzzleEffect) + { + UGameplayStatics::SpawnEmitterAttached(MuzzleEffect, MeshComp, MuzzleSocketName); + } + + + if (TracerEffect) + { + FVector MuzzleLocation = MeshComp->GetSocketLocation(MuzzleSocketName); + UParticleSystemComponent* TracerComp = UGameplayStatics::SpawnEmitterAtLocation(GetWorld(), TracerEffect, MuzzleLocation); + if (TracerComp) { - FVector MuzzleLocation = MeshComp->GetSocketLocation(MuzzleSocketName); - UParticleSystemComponent* TracerComp = UGameplayStatics::SpawnEmitterAtLocation(GetWorld(), TracerEffect, MuzzleLocation); - if (TracerComp) - { - TracerComp->SetVectorParameter(TracerTargetName, TracerEndpoint); - } + TracerComp->SetVectorParameter(TracerTargetName, TracerEnd); } - } -} - -// Called every frame -void ASWeapon::Tick(float DeltaTime) -{ - Super::Tick(DeltaTime); } diff --git a/Source/CoopGameFleep/Public/SCharacter.h b/Source/CoopGameFleep/Public/SCharacter.h index b199881..5d49c6b 100644 --- a/Source/CoopGameFleep/Public/SCharacter.h +++ b/Source/CoopGameFleep/Public/SCharacter.h @@ -6,8 +6,10 @@ #include "GameFramework/Character.h" #include "SCharacter.generated.h" + class UCameraComponent; class USpringArmComponent; +class ASWeapon; UCLASS() class COOPGAMEFLEEP_API ASCharacter : public ACharacter @@ -51,6 +53,16 @@ class COOPGAMEFLEEP_API ASCharacter : public ACharacter void EndZoom(); + ASWeapon* CurrentWeapon; + + UPROPERTY(EditDefaultsOnly, Category = "Player") + TSubclassOf StarterWeaponClass; + + UPROPERTY(VisibleDefaultsOnly, Category = "Player") + FName WeaponAttachSocketName; + + void Fire(); + public: // Called every frame virtual void Tick(float DeltaTime) override; diff --git a/Source/CoopGameFleep/Public/SWeapon.h b/Source/CoopGameFleep/Public/SWeapon.h index e34ee2f..a600976 100644 --- a/Source/CoopGameFleep/Public/SWeapon.h +++ b/Source/CoopGameFleep/Public/SWeapon.h @@ -20,14 +20,10 @@ class COOPGAMEFLEEP_API ASWeapon : public AActor ASWeapon(); protected: - // Called when the game starts or when spawned - virtual void BeginPlay() override; - UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Components") USkeletalMeshComponent* MeshComp; - UFUNCTION(BlueprintCallable, Category = "Weapon") - virtual void Fire(); + void PlayFireEffects(FVector TracerEnd); UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Weapon") TSubclassOf DamageType; @@ -48,7 +44,7 @@ class COOPGAMEFLEEP_API ASWeapon : public AActor UParticleSystem* TracerEffect; public: - // Called every frame - virtual void Tick(float DeltaTime) override; - + // BlueprintProtected not found for UE 5 + UFUNCTION(BlueprintCallable, Category = "Weapon") + virtual void Fire(); };