From 35fd6e2c7b3c7fcf203cc5358ea211db091ef8f2 Mon Sep 17 00:00:00 2001 From: charnet3d Date: Fri, 20 May 2022 03:42:36 +0000 Subject: [PATCH] Project Setup - Course 2.11 --- .idea/.idea.Shooter/.idea/encodings.xml | 4 ++ .idea/.idea.Shooter/.idea/indexLayout.xml | 8 +++ .../.idea/projectSettingsUpdater.xml | 6 ++ .idea/.idea.Shooter/.idea/workspace.xml | 37 ++++++++++++ Config/DefaultEditor.ini | 0 Config/DefaultEngine.ini | 44 +++++++++++++++ Config/DefaultGame.ini | 3 + Config/HoloLens/HoloLensEngine.ini | 31 ++++++++++ .../_Game/Character/ShooterCharacterBP.uasset | Bin 0 -> 23025 bytes .../GameMode/ShooterGameModeBaseBP.uasset | Bin 0 -> 19612 bytes Content/_Game/Maps/DefaultMap.umap | Bin 0 -> 32301 bytes Shooter.uproject | 34 +++++++++++ Source/Shooter.Target.cs | 14 +++++ Source/Shooter/Shooter.Build.cs | 23 ++++++++ Source/Shooter/Shooter.cpp | 6 ++ Source/Shooter/Shooter.h | 6 ++ Source/Shooter/ShooterCharacter.cpp | 53 ++++++++++++++++++ Source/Shooter/ShooterCharacter.h | 29 ++++++++++ Source/Shooter/ShooterGameModeBase.cpp | 5 ++ Source/Shooter/ShooterGameModeBase.h | 17 ++++++ Source/ShooterEditor.Target.cs | 14 +++++ 21 files changed, 334 insertions(+) create mode 100644 .idea/.idea.Shooter/.idea/encodings.xml create mode 100644 .idea/.idea.Shooter/.idea/indexLayout.xml create mode 100644 .idea/.idea.Shooter/.idea/projectSettingsUpdater.xml create mode 100644 .idea/.idea.Shooter/.idea/workspace.xml create mode 100644 Config/DefaultEditor.ini create mode 100644 Config/DefaultEngine.ini create mode 100644 Config/DefaultGame.ini create mode 100644 Config/HoloLens/HoloLensEngine.ini create mode 100644 Content/_Game/Character/ShooterCharacterBP.uasset create mode 100644 Content/_Game/GameMode/ShooterGameModeBaseBP.uasset create mode 100644 Content/_Game/Maps/DefaultMap.umap create mode 100644 Shooter.uproject create mode 100644 Source/Shooter.Target.cs create mode 100644 Source/Shooter/Shooter.Build.cs create mode 100644 Source/Shooter/Shooter.cpp create mode 100644 Source/Shooter/Shooter.h create mode 100644 Source/Shooter/ShooterCharacter.cpp create mode 100644 Source/Shooter/ShooterCharacter.h create mode 100644 Source/Shooter/ShooterGameModeBase.cpp create mode 100644 Source/Shooter/ShooterGameModeBase.h create mode 100644 Source/ShooterEditor.Target.cs diff --git a/.idea/.idea.Shooter/.idea/encodings.xml b/.idea/.idea.Shooter/.idea/encodings.xml new file mode 100644 index 00000000..df87cf95 --- /dev/null +++ b/.idea/.idea.Shooter/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/.idea.Shooter/.idea/indexLayout.xml b/.idea/.idea.Shooter/.idea/indexLayout.xml new file mode 100644 index 00000000..7b08163c --- /dev/null +++ b/.idea/.idea.Shooter/.idea/indexLayout.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.Shooter/.idea/projectSettingsUpdater.xml b/.idea/.idea.Shooter/.idea/projectSettingsUpdater.xml new file mode 100644 index 00000000..4bb9f4d2 --- /dev/null +++ b/.idea/.idea.Shooter/.idea/projectSettingsUpdater.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/.idea.Shooter/.idea/workspace.xml b/.idea/.idea.Shooter/.idea/workspace.xml new file mode 100644 index 00000000..b8eeb5bd --- /dev/null +++ b/.idea/.idea.Shooter/.idea/workspace.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + 1652897910248 + + + + + + + \ No newline at end of file diff --git a/Config/DefaultEditor.ini b/Config/DefaultEditor.ini new file mode 100644 index 00000000..e69de29b diff --git a/Config/DefaultEngine.ini b/Config/DefaultEngine.ini new file mode 100644 index 00000000..d8fac64d --- /dev/null +++ b/Config/DefaultEngine.ini @@ -0,0 +1,44 @@ + + +[/Script/EngineSettings.GameMapsSettings] +GameDefaultMap=/Game/_Game/Maps/DefaultMap.DefaultMap +EditorStartupMap=/Game/_Game/Maps/DefaultMap.DefaultMap +GlobalDefaultGameMode=/Game/_Game/GameMode/ShooterGameModeBaseBP.ShooterGameModeBaseBP_C + +[/Script/HardwareTargeting.HardwareTargetingSettings] +TargetedHardwareClass=Desktop +AppliedTargetedHardwareClass=Desktop +DefaultGraphicsPerformance=Maximum +AppliedDefaultGraphicsPerformance=Maximum + +[/Script/WindowsTargetPlatform.WindowsTargetSettings] +DefaultGraphicsRHI=DefaultGraphicsRHI_DX12 + +[/Script/Engine.RendererSettings] +r.GenerateMeshDistanceFields=True +r.DynamicGlobalIlluminationMethod=1 +r.ReflectionMethod=1 +r.Shadow.Virtual.Enable=1 + +[/Script/WorldPartitionEditor.WorldPartitionEditorSettings] +CommandletClass=Class'/Script/UnrealEd.WorldPartitionConvertCommandlet' + +[/Script/Engine.Engine] ++ActiveGameNameRedirects=(OldGameName="TP_Blank",NewGameName="/Script/Shooter") ++ActiveGameNameRedirects=(OldGameName="/Script/TP_Blank",NewGameName="/Script/Shooter") ++ActiveClassRedirects=(OldClassName="TP_BlankGameModeBase",NewClassName="ShooterGameModeBase") + +[/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings] +bEnablePlugin=True +bAllowNetworkConnection=True +SecurityToken=7D70D8A14F14501AD3F149B2CD8AA088 +bIncludeInShipping=False +bAllowExternalStartInShipping=False +bCompileAFSProject=False +bUseCompression=False +bLogFiles=False +bReportStats=False +ConnectionType=USBOnly +bUseManualIPAddress=False +ManualIPAddress= + diff --git a/Config/DefaultGame.ini b/Config/DefaultGame.ini new file mode 100644 index 00000000..cc7b41ba --- /dev/null +++ b/Config/DefaultGame.ini @@ -0,0 +1,3 @@ + +[/Script/EngineSettings.GeneralProjectSettings] +ProjectID=B1B3FFF2499F3381ECD967B8ECBB1860 diff --git a/Config/HoloLens/HoloLensEngine.ini b/Config/HoloLens/HoloLensEngine.ini new file mode 100644 index 00000000..7b8b53f9 --- /dev/null +++ b/Config/HoloLens/HoloLensEngine.ini @@ -0,0 +1,31 @@ + + +[/Script/HoloLensPlatformEditor.HoloLensTargetSettings] +bBuildForEmulation=False +bBuildForDevice=True +bUseNameForLogo=True +bBuildForRetailWindowsStore=False +bAutoIncrementVersion=False +bShouldCreateAppInstaller=False +AppInstallerInstallationURL= +HoursBetweenUpdateChecks=0 +bEnablePIXProfiling=False +TileBackgroundColor=(B=64,G=0,R=0,A=255) +SplashScreenBackgroundColor=(B=64,G=0,R=0,A=255) ++PerCultureResources=(CultureId="",Strings=(PackageDisplayName="",PublisherDisplayName="",PackageDescription="",ApplicationDisplayName="",ApplicationDescription=""),Images=()) +TargetDeviceFamily=Windows.Holographic +MinimumPlatformVersion= +MaximumPlatformVersionTested=10.0.18362.0 +MaxTrianglesPerCubicMeter=500.000000 +SpatialMeshingVolumeSize=20.000000 +CompilerVersion=Default +Windows10SDKVersion=10.0.18362.0 ++CapabilityList=internetClientServer ++CapabilityList=privateNetworkClientServer ++Uap2CapabilityList=spatialPerception +bSetDefaultCapabilities=False +SpatializationPlugin= +ReverbPlugin= +OcclusionPlugin= +SoundCueCookQualityIndex=-1 + diff --git a/Content/_Game/Character/ShooterCharacterBP.uasset b/Content/_Game/Character/ShooterCharacterBP.uasset new file mode 100644 index 0000000000000000000000000000000000000000..55e7d67fb1e15165681b8bc10e720bb91acae932 GIT binary patch literal 23025 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 IdfD^;0naB+f&c&j literal 0 HcmV?d00001 diff --git a/Content/_Game/GameMode/ShooterGameModeBaseBP.uasset b/Content/_Game/GameMode/ShooterGameModeBaseBP.uasset new file mode 100644 index 0000000000000000000000000000000000000000..429baf53182c291ae0f0d3ffcefde95f015b59b1 GIT binary patch literal 19612 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 P+LQ@Y>OmDB!ojTOlDq^fyqpm1Bi=&Ac*3M zC~AcRb>_ z^Xql@ecqg41*7+m9GsolV$#S-o92AGsj4x-X0>WJ=8io3+Rr|?@~OQ$ziZl$V7KqN z&9NpU@0;&$9P-q)8#cZKSm!-Oi(ks?wkqp_PV?WL{+zWZ!S=p*X32=SyzJ>MI(<2N z)&18uA=p6Qsom4e>r9_tKJNi<$965RCRpYzkL=6J-P(24+7@?Ix3quWm0(9I)*bpb zbN;c5_9r}+u_debwFFzzpRtBi4|Tf~s_L<;sdsJ2D4po8PinF`H8azk+{coZo^HrW z%S=k|lbn&2U@|16TTEF*!r0Rt83Xs+>libO``h|51}kM;&sa8nM$#vK=iz04>HS&m z$(^11%>}vh>i-UU@PPu*h_M9^_KIskb$t9VOGr^oZ=^fk|SVlA$3CHdW_NT^zq1DrwczoA=Pqrk%Pg*K0) z$`?P>I>AwH^*P+G!fLNisq7sLC{AGWYkoh35y-Il+@3*xhn)?2x^wPD5|U#rRh(>P zOHWB_fGSHJip!U0vpM}U?Ubczo3?d)-$KuBON1o@jDA-5&Pi zz>A&mSRw?dvWh%{lp9u5HlQiMKA+WAk#F??*!#??Ll9ZYJ8p4VOPvaFaXQd1mN0wG zkjpvN>2yytJJ3s;lI2jGc2;kbxqT}QS6HRk9AyrhWs-tK ztv?9w)kx?aIiL3YlyR7Cb=zsM`;M}kG1x@m^%YiF?e2-*JXeOV((SFPP&^8&FqMzuYStn!Io*D{mo54< z;TCv8DeUj}DfS#kd4-QOEl|8}rytJ9DlfgK<|-Xc7?KBneEB#6QmM(Ka2@5y3|Kwx z4DX$a$W=V$I^&wYxo;|ly3|tX@Om8+6qqPG|CvNCP90?~jrvs<@MHF`+a8e;A~=6b~sRRUTH%#_a9*5I09HT&1;YSh1Hqx_A6ZE?XjpT3rsGqKdKe z5vfRVR(62SgFJ43RkoeH(_ynZfm6I$ZVwHk!&S~czFygf&|5m#VJ8|kq~Fg2qR?XScaNQ@~W)k{R*2@wr?%`B-5$5>=_Q5Q{49#%Ysif4l2VOMlo_Z;tl+g_c` zBaBU9#zU*#=?E@)E@!p0ritPZ`b<2E$-62QFFW?c;f9D7nQr&EN~>oaj~cAJsLdRe zrQ4~6kV_h@yZd6!vdU_6_^P4VFAEkm;C&{$sW9(2!2AF9@iA_#JkroZGrGuQb$QDa zj|>j%@%P@a@rf-dirteGCl7t|Uw9{l8!X>3!R^a;J6ygD-zdf7W`CRd-JRUe3lyuf z$Wf`7tW}7Z?5o+g-_1R)Kp|&PXR2yHFB@WutKrrwQ2bs6j>6rsQgyk{4n5I^&p?jN z_b3w_ZofB2nV>kOxmerG!znOQX@T2cUg1)_Ui9((zYRRl2&VJ+DN^+QQ zz)A7P1HoN#AAgmHoI)QhS2o@o@_7jL4H}khW&;+DyPWecvbxH-k5;iUD|T%LOsJOc zc2=|f?N%E2TpZ?A%u1Qn@AL(N`uGj~p5%ddGOYG-Fyln4r})#M#E#V&n=FB~G2 zvhJs|T=QY(Wc{xZ{X3I-9@Zp4cO6V zVP6eF8kRYn%23jaUD&w)Qp^wyNy`N--(H3Fy?ym2m?Z?`WvwfY{1g64C|dp3&Qr<} z;R0Uy$h?g$k%yW5r3%~Fc4!IAF5F@eN#$X%C}Zmn;BQvE4v%8bbo*WQ0;}EO_p;?L zCvL-_3sjba`$E3rv5^Z}%N1shTiTPib(EF)F`9vFr)2O`&qEtCF|~2qO|^J>BZ6oU ztCKr=K;NCix=&Tvc`<|RnI5d2n4Ro!j^_zX>M$N9L2TE4TP0l3T~fczqT}7YFIWZN zwAdY#wiY{-iC*^b$POK`)LMckFNHvxn$~Tu>G&3Q1(8Ym_8m+%XZ7NqXv;O0Q;V;3 zMb%Xbv-WJg8^PDY<8Gc=jd(OUICj<4Pp-liAS||TUoGjPY>T~mMThqg;$^O)cc15H z&g_9%YH|51wV8b5M@x+D0VK$zYIQY$-Tdn8q&2s~ZD(l<%u9Pkqw3q2N5A0;Jd9@X z(q79~bU~xSD(gfS&xy669ZbOxK~V6&^5EMa8Db(OAYW92?&utp$Co$z# zvpsg~1SX4RSaF`;NBv>N-=|qH^)yJ|zA8qBncKeI_#jr7ET`M*(=2py` z!e&hLjDhxH7LHZB_H;vF8|akTId!z9!RDAv_mXP*yLwKbgDHcSc%gi2xJX{|}wI%Jx9 zM~#-U1>HuX%|C{Dxyle!==M`!=5Ec7zLonFXW|w%9zS{A4o(?7VK;uYIvo>@7;AlI z{?hL~=yB-mub6z(t>{_^rbMhOEVuIEYDBb93O?-B<+P06v44aOF+|ev`Aq)eqyBo? zjH502-bZ3JM3*67K8i@JA$+tss-!k_a6qm!LCK_yla{TP%9R+EToCtlUK$=m$%5x2a~0@opBg`pshEXPc&SJ8K7=;-|xGq44udH(dO0kqm73k z%BnlHEZWADT5aQsX!DMIQCi^E$w#|jUaM5RFTo^Vj@|nYjB@a9(&V(#ioW@=(H9^a z4Z*ryWsY*TuxIOX%y|70yFWGME5t2+(siu@%0Z)LC{m9I=0Gh-(0c+VKi)dZM@%i1ig_+IR(7ziw&Q=+>S8$G)R<_<yf8lmv6K_%$dp@KJ&gw zJYnbRP~LpEWAi?kR@(|{qucxf>uijOhS3k;z}w~y#JU*>4(!g-gInPZh2yFN$3+26 zQg<)g1^o)$Wj;O!_+tFX(~i>^Kb|B+$~j&??r(wFAWz$nK6U)&%MzGZZX`9eJOkN zdW?lb1Yi{2d7d`*=!U#&!eL5i&ss=Sw4c`Pfp%=UcLyS=gh^Xq1;<*g8e?O#;%ng+ zMHLjnT~>#arxt(DNm>uz<~wc-|z_%o?@EKbo*r626hNmchuP~yTeAS=Pz@+uflu*lmk8<_1YJ3 z^kUjWh+Rvg1zq^?t7lF=kHf}KKLh?z{MTncLc9qa0Xeqpej37tyFE_3wpKQ{>%pBp z2pVs3(Hg3VN(*lBoO%!)H%Sm{_j*DbZ1QTipcxmRTf!3zg|5xiYj*i-PdO02LMaQ0 zbX;|zdYW7BlA=ei(~*%2;Zy=A!`^tJls6@WD4}ed4Ci08>i0BVle{X$#Wj_*@mdNh z^^VWYE}?OD96H? zNkj@UO0C_(6txz*bTce4@dc zH%>5P;%f~plhkK1^Z;Zq-*VChjoq*zWjGvEqmpO6c41ha%duVy_aDQmqLI~FURc}l zEq+9_(xZ7SWR8|Yr(#$F7%h^koTnN)jIBiwG@n`bd)wTEsV_Ld$)0)l`~8SZ0g%q8 zruH~I9pfBgkOdVtEkk@c>*;PI`7^-O&UXSOTO*+EU%1UyG-C3wm6@XXT-3&piM))Q5`$y^}L>!YDF4 z<{dQq3g{;8v18zEm-Jkra5y~>Acg3RPVM7u^*X-|H!jfUMFuu!TlW<1=GDsbh1r2x?`g4KB8-nXYW+%q65EJ=w6PIZfg{}UsRRY+eFv04*mKHx;KdK zgt!jZkLv{vFMj+MhVBQ67xkM&cS#tz!E}%t&d%ZJq|NpEg`@j52K^vc_B|Ru+4pF4 z4Pxx?EivlXFh+ijVx(&lBi)J^^;;by-KH4nu8dK?Rx#4;j8Sgu82Pn{k*-6Gbh~5J zuTzZtzKW4w=NS2Y9Rt7DF@Iy=x0C3O$G{JCUBmE`@mbC>%-@q?_(?iB#}Mx?s)L`L zW8inH4t{cuA>KC*!|zAYR@wq~Ib8?8rh>;?L{~oyKiQ9F0{0%#b%}xQU81|V4!Y(7 z_YTor8ir2B(-s1UE_@TFAK~Z@$4K{&80o%^k?y+~>HZlb-H{mSqz%HY3wry>v5ZD1 zeJC2;(J=Z+88U|MrSZKY%=k(=8AIXsf7HQG#!%!h@>;K-dIZlY@&1Klp7YgY%IjLFcCzgtQC!}Vjgkh_iOI@ZBY#$@n|tAkF)WaMk|S}*q( zf(w!CBD#>dX=8e2LB=q=W+@9q32_pn)p|Iw)%Z#Ry)5i9WZnf?-38If^Cat-PCj-O zGWXTX>N-GbruIp%e*javzv23&mxX?Xla>2#kcD#yy)5hcC29K(&*QJpMo{g8*#E7M$-T{O-f7~l<%o@W44 z8y-&9PdZuXi`=`w5AP9-o;C(J{@=*@G)NZmo%(`xcRV|zlAfW~(Z2Ql4cD(9b+TYX z}XO{d^A}{bg~emWL}4Ud4!1lL(Y$^13Fpg7xF~euV;mboEy%MtnYQQa9n@6Fa&J) zvKX(^=SkMDI$6;EG9e3MG60}bGgPhd4YVK$0K;4n+mQ9^pE{U~8)%AtJt=s^<%x?Z zm0pKfWMNO-fIg7*rr^EuJjwb_*Du80)%212Nmn1AFN8*^WIK?B>({qBS+F7Y=4gX{ z;U49Mf1|7mh(BZ*U`#4+o+nxV(Dkc1@s+tR=CWLuPZV*HQNNtV|W$y zE1Il>I$0fwo7|)6bAV&ksA4!lG+CePWT8Pl(EvHsWeAK^%1YHb+Bcd?dBiqkt^7;} zgAH+(C;e~*9z9d3cBplu!|pt~(!kdY+75 zhtLl@>D_q9O*AAX_BN#SPDtyOkk&gXrFTj?|EX{dZQ3ap`2#)#li&lNLis?g_*mjH z;<8QSat4l$A{RqgiWhk78gY#(A|YHZCPK`Qm>d zuFY#bXPv&kW^(-M!z1e* z0x5l4Mq16~Hb!a!{#*1SRk*)nJpV)EI14hVgv=hfI>-qEA}nMmAwe6)yoIB}AhGz|T^I5Vfvgg> zoWWjk&wS!yyQo9tLxglP8H%DVV{LCPI{f~C{uyf?nmu*L^QGS4WlT%yk(h?Oy?Lw9 zCB$%l6$riI0752<61M>GuSP^;X9gGwSHoApW@I7lFa)uul) z6sZ|wHO6zx83e~bRc(Ax+ytB8RP*JjANMtzKCtG;ZuN~h|7GpAhG|s4e!C{YgDG$YQ5uy8ojY2nhfU!XKk{y zH|Fge-u|LNoATehrr^ECuLPS6hYP%5%F6elYrpWWR}Q372i}anR)~ub2e^z7`vnqf z9g1JA0;wD#jwF)aZ4^Wiw*fQmEq-id!=1*>KYjerRXdutS@O2|z|;nJX5YSk^I^;Q zQ-@B^8U19*<+BHGx#}Kvh`l)S(A&59``mG-WxgZJ-0J?;U%w{=NUdgyd#M0lo+Xh4 z=10@&i93JZv!mT;IlG7FzVzl5%WvuYQ;*p}T18z}njQc4 zF2{F&$$5OwndSRF_nf$2FbEkL95;O(3E71Z`Z32g5io>`=Jdg8auIzHhT%T?vnd$V z&wouq7wXZL{JjsIvv}zmFXqc)r6VSI6CCA#wCKAFMWECMp;0HQqyE{pU8XD@0YxXrIjk^7j{dlsW>GtN9HMQ~62I^=t z)N8<|4O}Gl81f8}`?Wn$u zcAY7BnHhUse@%SVB4y(MR~Et$tt_?V)iQ`|tCJ!4$~L^7CON5fEq$REwc+|o9jU%G z`1*Y7D`gO0sjJj7#NN`rx;D_SmX5Co`vQ*Ze}}$0zEVeC!@l^4qS;rc3)dIzGli{# zug|x>#9!J+(~D0cd8gK@?Hll$T0VgGQb%*pHQl2hYLPy89{d;bG&`vCF1&9v2{QJVx<^G`8gT<#kB|{_XmoFTU2J8*lz}j6jxhYEldh%@ zTa0U8Yn}eCbHq4^N0BF}I0WSd8G7v>mE9^ZG4DH#qCw2cH7e_VbH9O#Wn-HuztuEZ z)AZaDY#~*vj8l#JVG0%!@qpke;t+9U8WJ+%$e`s}kBn#TM&JHs-Sciw-}=knZtI^N zJTl0$c!4X)U+b~69+VWpC3q_v$Ig$nYo?#uCUdvYDB)(Gv_DK#l0yFy6H-!364J`j3~9C`TUnpPWF^I#o}OHm(#Ni(*wT`0w&c>1)HFj< zLRwZ*a(YUpIn!*(v?QAn66miho6O1SeM}aEED7R5))G!NvB<)$taT`UnUtKIXh`D! z1WJ1^Np2)%_I*IwMjh=lXPy^;U_xnW?iP5e-cu0DnAus}OSojL)iPiQ&*wlcdw%9M zJGgCYkZv;D|6Efh>_tbT3J%oz*(B#fn5Gfk5w9DVM1#FJh?^n|3$)RaWCDVdx$#Zr=(n3j~3n3-Xrr|rpRb7Fe3C6Vsa`k2#_ z(v#D&ZuDF2^v5>vw^#}kJN=my`kOo@#fe=L6+=lwF6$sTy}MAm1mS_q5;IB?M!J{%;B+Y} zb+RQjE7g*UJCh1YQY&qK)@sFZ$+dI{ov(s{p(Ll!kUO;SR#6Nkg~M}3v6$v4-g1$1 zQO?ns!iOb1#FYyKW~!cDS;R!YAIU2FjgesA=Nekk%8yqAO`%Y zk0g>@R|ujSQHNAF3P^~aUkb!aq7Lq{B3V_43mFO`a?Ckbj*_#i&oO#c8&w4YwPYw1 z(_Rpiu^dS|FP-Q+VgiZWV!KKgx??~~;Z)jDY1GuddiM{u!B5?C!|FHI+_7%J)0<@2 zlMA+d;LYE{3jX5?XPqm&AatK3YOUAPhwVAXlX1aGs}9brmAHQ*5FvK%N(hHQNi(=4djW5B$7abAetr` zhg6>mNXWX?aP_hQ&qYFFQOgp@&^|Veh~baB2pig_SHw1H5iy$uMs{|F$lo6o@Q~^? z0hu9cEjQ{(N!=j<46y`bM&m+(l%npzIU|(^)hhIRp8(w;YPq%WOH!HeeJ75Y~a#}NE+7LA|lx|aDt3{;duq zTUQsdeq`jdfe#2|@BldloGlO+S4SW$m4sczMKe(cJ9ixG5fPIS0Ym?bS42#DM2tLg z4Ay}D=d_4zu8N2;M8qUS#K<5Rs=>{o%~|{T)92do!*gx8{9GHpdaez{en;CC#T*3Q zK5L28VA`bR_1$OPP=uYopKHTs&$S^0qnx$p$kq8_wSBnQGtKy!KuYdXTCsqKtIj+W znd7pIDRm$-?-j_9B?!y+T7e9XN#g}v`&$PyBM^?2gyY18JX;8zk4b_e6q6VcV~&Vv z6%msf0Tah85io(DB8KYLCqkPz{_{2ExVHV`qGo>#+ zB8a5B87@=-O9VWm+9M!g9cH~iR*721jR}&?L~#+0kQ|Q1M2G{cm$vzvdPgR1`zrgxJ?Uqe<%tXpqJLIOTdAcL3BN&#msanWAX!O2A&|7!t224fgY zj?jj&Ya?Q=iGYdYZ*&70D(A8YZ5SI80TaivBVg#2>Ij%P)-56?aw69yVw;O2U>NHd z5%Z+L)R|z7icECEd{boP;LOJaGOQoT{H?bjlBaMz#r-p))_!;|2_!sRjSLJ$1{4`y z|Du9JzsD3VzUO#VQtrwJw|~BD#mP8$IEs9fD1CwdAb|gI2Kj%8g#O-I_6Y5_(|;8I Fe*k_m`i=kq literal 0 HcmV?d00001 diff --git a/Shooter.uproject b/Shooter.uproject new file mode 100644 index 00000000..71bab439 --- /dev/null +++ b/Shooter.uproject @@ -0,0 +1,34 @@ +{ + "FileVersion": 3, + "EngineAssociation": "5.0", + "Category": "", + "Description": "", + "Modules": [ + { + "Name": "Shooter", + "Type": "Runtime", + "LoadingPhase": "Default", + "AdditionalDependencies": [ + "Engine" + ] + } + ], + "Plugins": [ + { + "Name": "ModelingToolsEditorMode", + "Enabled": true, + "TargetAllowList": [ + "Editor" + ] + }, + { + "Name": "Bridge", + "Enabled": true, + "SupportedTargetPlatforms": [ + "Win64", + "Mac", + "Linux" + ] + } + ] +} \ No newline at end of file diff --git a/Source/Shooter.Target.cs b/Source/Shooter.Target.cs new file mode 100644 index 00000000..33d287d2 --- /dev/null +++ b/Source/Shooter.Target.cs @@ -0,0 +1,14 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +using UnrealBuildTool; +using System.Collections.Generic; + +public class ShooterTarget : TargetRules +{ + public ShooterTarget( TargetInfo Target) : base(Target) + { + Type = TargetType.Game; + DefaultBuildSettings = BuildSettingsVersion.V2; + ExtraModuleNames.AddRange( new string[] { "Shooter" } ); + } +} diff --git a/Source/Shooter/Shooter.Build.cs b/Source/Shooter/Shooter.Build.cs new file mode 100644 index 00000000..aa17ac7f --- /dev/null +++ b/Source/Shooter/Shooter.Build.cs @@ -0,0 +1,23 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +using UnrealBuildTool; + +public class Shooter : ModuleRules +{ + public Shooter(ReadOnlyTargetRules Target) : base(Target) + { + PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; + + PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" }); + + PrivateDependencyModuleNames.AddRange(new string[] { }); + + // Uncomment if you are using Slate UI + // PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" }); + + // Uncomment if you are using online features + // PrivateDependencyModuleNames.Add("OnlineSubsystem"); + + // To include OnlineSubsystemSteam, add it to the plugins section in your uproject file with the Enabled attribute set to true + } +} diff --git a/Source/Shooter/Shooter.cpp b/Source/Shooter/Shooter.cpp new file mode 100644 index 00000000..4ce1d7bd --- /dev/null +++ b/Source/Shooter/Shooter.cpp @@ -0,0 +1,6 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#include "Shooter.h" +#include "Modules/ModuleManager.h" + +IMPLEMENT_PRIMARY_GAME_MODULE( FDefaultGameModuleImpl, Shooter, "Shooter" ); diff --git a/Source/Shooter/Shooter.h b/Source/Shooter/Shooter.h new file mode 100644 index 00000000..677c8e25 --- /dev/null +++ b/Source/Shooter/Shooter.h @@ -0,0 +1,6 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" + diff --git a/Source/Shooter/ShooterCharacter.cpp b/Source/Shooter/ShooterCharacter.cpp new file mode 100644 index 00000000..b64df989 --- /dev/null +++ b/Source/Shooter/ShooterCharacter.cpp @@ -0,0 +1,53 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "ShooterCharacter.h" + +// Sets default values +AShooterCharacter::AShooterCharacter() +{ + // Set this character 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 AShooterCharacter::BeginPlay() +{ + Super::BeginPlay(); + + UE_LOG(LogTemp, Warning, TEXT("BeginPlay()")); + + int myInt{ 42 }; + UE_LOG(LogTemp, Warning, TEXT("int myInt: %d"), myInt); + + float myFloat{ 3.14159f }; + UE_LOG(LogTemp, Warning, TEXT("float myFloat: %f"), myFloat); + + double myDouble{ 0.000080845 }; + UE_LOG(LogTemp, Warning, TEXT("double myDouble: %.10lf"), myDouble); + + char myChar{ 'c' }; + UE_LOG(LogTemp, Warning, TEXT("char myChar: %c"), myChar); + + wchar_t myWideChar{ L'J' }; + UE_LOG(LogTemp, Warning, TEXT("wchar_t myWideChar: %lc"), myWideChar); + + bool myBool{ true }; + UE_LOG(LogTemp, Warning, TEXT("bool myBool: %d"), myBool); +} + +// Called every frame +void AShooterCharacter::Tick(float DeltaTime) +{ + Super::Tick(DeltaTime); + +} + +// Called to bind functionality to input +void AShooterCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) +{ + Super::SetupPlayerInputComponent(PlayerInputComponent); + +} + diff --git a/Source/Shooter/ShooterCharacter.h b/Source/Shooter/ShooterCharacter.h new file mode 100644 index 00000000..d8d73105 --- /dev/null +++ b/Source/Shooter/ShooterCharacter.h @@ -0,0 +1,29 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/Character.h" +#include "ShooterCharacter.generated.h" + +UCLASS() +class SHOOTER_API AShooterCharacter : public ACharacter +{ + GENERATED_BODY() + +public: + // Sets default values for this character's properties + AShooterCharacter(); + +protected: + // Called when the game starts or when spawned + virtual void BeginPlay() override; + +public: + // Called every frame + virtual void Tick(float DeltaTime) override; + + // Called to bind functionality to input + virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override; + +}; diff --git a/Source/Shooter/ShooterGameModeBase.cpp b/Source/Shooter/ShooterGameModeBase.cpp new file mode 100644 index 00000000..16fc148f --- /dev/null +++ b/Source/Shooter/ShooterGameModeBase.cpp @@ -0,0 +1,5 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + + +#include "ShooterGameModeBase.h" + diff --git a/Source/Shooter/ShooterGameModeBase.h b/Source/Shooter/ShooterGameModeBase.h new file mode 100644 index 00000000..65122f6a --- /dev/null +++ b/Source/Shooter/ShooterGameModeBase.h @@ -0,0 +1,17 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/GameModeBase.h" +#include "ShooterGameModeBase.generated.h" + +/** + * + */ +UCLASS() +class SHOOTER_API AShooterGameModeBase : public AGameModeBase +{ + GENERATED_BODY() + +}; diff --git a/Source/ShooterEditor.Target.cs b/Source/ShooterEditor.Target.cs new file mode 100644 index 00000000..465a008d --- /dev/null +++ b/Source/ShooterEditor.Target.cs @@ -0,0 +1,14 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +using UnrealBuildTool; +using System.Collections.Generic; + +public class ShooterEditorTarget : TargetRules +{ + public ShooterEditorTarget( TargetInfo Target) : base(Target) + { + Type = TargetType.Editor; + DefaultBuildSettings = BuildSettingsVersion.V2; + ExtraModuleNames.AddRange( new string[] { "Shooter" } ); + } +}