From bb0d0a86604f01d9dcef17548b7caed10d590fa8 Mon Sep 17 00:00:00 2001 From: Cody Larkin Date: Sat, 22 Nov 2025 16:28:39 -0500 Subject: [PATCH] problem solved, no idea why --- Content/Input/Default_IMC.uasset | Bin 2493 -> 5231 bytes Content/Input/Look_IA.uasset | Bin 0 -> 1330 bytes Content/Input/Move_IA.uasset | Bin 0 -> 1330 bytes Content/ProofOfConcept/DDIController.uasset | Bin 20822 -> 21106 bytes .../PlayerCharacter/DDICharacter.cpp | 10 +-- .../PlayerCharacter/DDICharacter.h | 8 +- .../PlayerCharacter/DDIPlayerController.cpp | 76 ++++++++++++++++-- .../PlayerCharacter/DDIPlayerController.h | 17 +++- 8 files changed, 91 insertions(+), 20 deletions(-) create mode 100644 Content/Input/Look_IA.uasset create mode 100644 Content/Input/Move_IA.uasset diff --git a/Content/Input/Default_IMC.uasset b/Content/Input/Default_IMC.uasset index 8f7e89f070d988736f0589b9765542c461ab003b..8b270a5000670ea23bb923c106c81d49e6e91993 100644 GIT binary patch literal 5231 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 Dc>@zh literal 0 HcmV?d00001 diff --git a/Content/Input/Move_IA.uasset b/Content/Input/Move_IA.uasset new file mode 100644 index 0000000000000000000000000000000000000000..551e0e03ce818a72ec9148aa30a78052855fd3d7 GIT binary patch literal 1330 zcmX@utTpfZ|Ns9Jm>C$jm>3v-0cjAhw3OLBbJ~Q1TZCS(6W)FAa{H3S57)3TFfan; z-ezog^3rL_7w%hziyU{m>1hDPM1WY|Jux>`-!reEv_#)GzbrN0(-A1jz`zH@l^~5k za2RNZB9JyVF>!Nob#gT{HZeDLb~3XxvH(&RuEx%m7S6_&7I4KNeI7tZ0rfHb01-g2 z1L{Z+4KfhM-vi`>@ENE)NbU53@|G-yBks#j9P7<`{fZA{9teXR#mc}AB;UteWfB6? z+S;M6rrJTNIjM=osk)|m<^<(|n!rG(@_rhK@d0S>KVTps17O(x2L&7lP>_igAtMH4 z>IWwmWfqj^yXIvi<|U`5fP;?V>blc!c!9D`l_jYGMfnA(MJ1IC&-`=`fV8-R)i@@X zWaj6ECFYc-hEx`$GW@-I`Jo&xSt~2Yip*jo7Y3D=%X&ZtyXKYV!VM0*KGy-{EWiA` zRE96iM|ov|oPfmS?8Nj`pZw&+oXo03kY#?rxGgS7OipDGDyi(?0xCjS&wRPV09OL2 zw{-~x%R&9>oL`h0>YtRAnq0#0!&BFe4QP^cPGWH}LrHnXL>?dy$%hO=5(zw@kb@x=i0RfPiL0}dG11K5b0zJASCDN;Ihg^RTY+K> zuy6z^0AUaSc?cOG^Fbbkn}i%|2Z5#E^lwWW^sJ9u1Q{fQYyyy7cF!V^<j1no3dd0;qsoenJfQi-5OUi4c?`35CR#J~X_w(}yCi z(+7R1)3Hw5@u8G-X@q2e>`jFSv@==Hh13a5x(Vx*a2+tdx$C?C)PbtSKJIQ97;-xXEUtdfh{Nd~C#vkIi%4&AxrRBt{L!ADXinUC zD(YKZM;u)LMcmoDv&Z6&M|GpIlI`{pM@ge|)Z;EeU;7*Di1BILqd*J|BX-SEU<}02 zIAY#ymY!L2!lYD-DP%UePpz>}g|nEh)jm2pd z(kk_8z{}JH2^+u+YwdJOoeji3RUW;d{v;!v>sNquk9iy<8agrX)6tVjThnqljHg9* z92|0X9JWu8N_sn~Q0k%jRp(k+s4( zn(iLzANKh@s;SrF24nO2)zRykDJh3~QgS4*z^_wYml|lbw$wYIu*oerlEb_YC)3w( zQP})>ql$_w$9s8so|oJN$L{5c3kk?PV3UjGQ(D6$V8axsq?-jx0{@E}v z)#$iQ5V=GV$eRP6BLuIH>jZ|pg8@9|e?M1_aCrxat^gtq19`szZ!7}dZQzZE<|*+z zIXDl*Lm`MFVh_hqVC}>fYU})Ydlgz3p5mWTURaXIK@j^QXP5B-bimWw1R5`)0$ z3&9g}#R2^TGW{y>uu2e_di9wGc*(Jb1>_Rv8)bUWmQ8=qR~d{Pjt43B>yCv^8?tG& zp~^7GVJxWEcz z7k;%ITDTI8?s$ZRSoxCbxkSOT^8hvnU)I<*DS|y2h=~-{sGfdYr;~Ql8B1!0zZFb0 z^Mf;r!ozs#QV}+9!x_BcHvvI6GFObYg#t0 zfi0*x1SOk#>Q_~?a763^4q32-OxB21EaL%}6V`(_A`iuU8UCsC0Ot#J7_(GQ zdmC1n1I>^UK6B9?!0F4PUp8op{=1VzYi{ID*5)sA@LY(sRKPvSir*^YqmymAom=?G z|LUQ6LNOMplYKhyb&>ic|3W7F&?5I7LsA=+$RZ12*X-kiXvdNlE^9;Hbk74ULrscRILxeS}ST22TmuNMIbnO8o6-R6(1s{cF1^h~n` zQuBFp__Q{P#L>4~)-0V`+SR&7GC}fnbgFf2{B|BpA#4$Dz_g*@SesS9maF~uJH*MY z4x9d6+<-W_VGj_UZ^P&o+A5b`x0h(R$)E!(d~p2P+sdcV^IlLH{0q*cAsmQxUdzE9 tw5Ov?znhQz)3TlwmvbGOmW><@y2kj<$F^vpnTn1CtqH&OWSZ7l^Dj1EMo|C& delta 4024 zcmdT{ZETZO6ux&j*3P!;$NKKw+Le7V=|ILt`P#6h+q${7`zVYLhsp*H7#p>l!(zI(@0{(NM!KKkcdAGQISaeVFGF*iHRSeQTZd@^Su$!%g+AmI4e(OE(7O&$;xXicJofd|= zgzg}p_k~P`8QUQYjR|Ni`f+x{lG{t5rNj#(CC|68ZCR0ad`bJZ! z@#KNdXOlByFU+t%Hio{3la^MvWtrd##I62i3Pr~WM4lf@&h$)=rVf&kDR9QR#T=uq z9j=(lP1K12S6xtJGl5C9h+wt0Rob(@v_*Qy;6W>wu$@T zN|~E)gqNLuo&audb7IX%A7A|`H=Xz z;BR|}(}$Q4gonoWO)xp`QAei}XO1%G>w;^JH$;M?&Si56o^!s$!_edkq@U8+>{qcG z&rmx^8WkpmV&omrP3%EDS@%VFY4(d4c)WmsKMUS)fxO)X@}6XAow-Pc3*jAJIrfl>ueQ0DnmBuXT7@z<3z3X6U_RiH^V4t$BY(Fs6_2e!N12-0aoh ztyKX9kErxMMWv7QYw#xm-mCE$^9$WX?HdCc-0BG^vSfa7IXMVsgK*R{tl$opfo~J! z7}PwS-hdJ{z%uY(I{b?FqRA)T7kCMRBc#HP>hh&c!muk0spNyGj}^|a8F4+7F)n=LD_t(#@}x4K z*6dB+NX`E*>pfe}^27M%J(w=jR+4rHV;!`dA=0R{o%OpoMR;CNT6Lv8H4rx;t~yGN zC%!DV!BmHfhhQpFUW^`1hCaT`oY-&NBwA81JBD%P*K59<&;2yBgXaCj^gz6gp4GLNb9GLh=PKuEazZ93WQE0FTlDITge* z;2B4;!UrBTWBSe71h00vSISH^;-c#j1WROP<0_3ffA?e87(=^p0`p5XephUQt>l!G zWvKwV7XyuYYAu|jeDaG55SO}EU2`Y z^<=>BPn4WkCAvKqXd|Ex{PBbCcIxF8JlgB#K^W<6=UZSTT4@#+xh6qq=~Fqr3tQl7 zv>7%;SMWiN@yHy5tE%wT8EYV@nld(Zp5mn!EM7zgCB0zrHWMM|0{cP$c`Hi}c)GzG zv-}rDz8uFQUytW6GJY)RMSibu@gg@vvVR2^|G%Q;aISxqxs&F$Li{_@m!clL1L6pg z-MHL&mLs^}a>$PwxtAB-KgEMMHP2xC;=99KMk!gr9#^+hC-bh-jM_^>v~upIKgFfu zCchleEC2`GvAW=BqRB188>g>dFJC6yaruWa=KxnybUA6QOMjzt^T9W15Y}!D{R36( B9MJ#( diff --git a/Source/OpenConflict/PlayerCharacter/DDICharacter.cpp b/Source/OpenConflict/PlayerCharacter/DDICharacter.cpp index d6cc314..a713e7d 100644 --- a/Source/OpenConflict/PlayerCharacter/DDICharacter.cpp +++ b/Source/OpenConflict/PlayerCharacter/DDICharacter.cpp @@ -8,6 +8,10 @@ ADDICharacter::ADDICharacter() { // 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; + CameraComponent = CreateDefaultSubobject(TEXT("CameraComponent")); + CameraComponent->SetupAttachment(GetMesh()); + CameraComponent->SetRelativeLocation(FVector(0.0f, 0.0f, 50.0f)); + CameraComponent->bUsePawnControlRotation = true; } @@ -25,10 +29,4 @@ void ADDICharacter::Tick(float DeltaTime) } -// Called to bind functionality to input -void ADDICharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) -{ - Super::SetupPlayerInputComponent(PlayerInputComponent); - -} diff --git a/Source/OpenConflict/PlayerCharacter/DDICharacter.h b/Source/OpenConflict/PlayerCharacter/DDICharacter.h index 3523c75..2172608 100644 --- a/Source/OpenConflict/PlayerCharacter/DDICharacter.h +++ b/Source/OpenConflict/PlayerCharacter/DDICharacter.h @@ -3,6 +3,7 @@ #pragma once #include "CoreMinimal.h" +#include "Camera/CameraComponent.h" #include "GameFramework/Character.h" #include "DDICharacter.generated.h" @@ -22,8 +23,7 @@ protected: public: // Called every frame virtual void Tick(float DeltaTime) override; - - // Called to bind functionality to input - virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override; - + + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Camera") + UCameraComponent* CameraComponent; }; diff --git a/Source/OpenConflict/PlayerCharacter/DDIPlayerController.cpp b/Source/OpenConflict/PlayerCharacter/DDIPlayerController.cpp index 69384e8..53b9fc5 100644 --- a/Source/OpenConflict/PlayerCharacter/DDIPlayerController.cpp +++ b/Source/OpenConflict/PlayerCharacter/DDIPlayerController.cpp @@ -2,11 +2,15 @@ #include "DDIPlayerController.h" - -#include "DDICharacter.h" +#include "EnhancedInputComponent.h" #include "EnhancedInputSubsystems.h" -#include "Engine/LocalPlayer.h" -#include "InputMappingContext.h" +#include "GameFramework/Character.h" + +ADDIPlayerController::ADDIPlayerController() +{ + +} + void ADDIPlayerController::BeginPlay() { @@ -24,7 +28,18 @@ void ADDIPlayerController::BeginPlay() void ADDIPlayerController::SetupInputComponent() { - // Super::SetupInputComponent(); + Super::SetupInputComponent(); + + if (UEnhancedInputComponent* Subsystem = Cast(InputComponent)) + { + if (MoveAction) Subsystem->BindAction(MoveAction, ETriggerEvent::Triggered, this, &ADDIPlayerController::Move); + if (LookAction) Subsystem->BindAction(LookAction, ETriggerEvent::Triggered, this, &ADDIPlayerController::Look); + if (JumpAction) + { + Subsystem->BindAction(JumpAction, ETriggerEvent::Started, this, &ADDIPlayerController::Jump); + Subsystem->BindAction(JumpAction, ETriggerEvent::Completed, this, &ADDIPlayerController::JumpEnd); + } + } } void ADDIPlayerController::OnPossess(APawn* InPawn) @@ -32,9 +47,54 @@ void ADDIPlayerController::OnPossess(APawn* InPawn) Super::OnPossess(InPawn); // is this a shooter character? - if (ADDICharacter* DDICharacter = Cast(InPawn)) + // if (ADDICharacter* DDICharacter = Cast(InPawn)) + // { + // // add the player tag + // DDICharacter->Tags.Add(PlayerPawnTag); + // } +} + +void ADDIPlayerController::Move(const FInputActionValue& Value) +{ + const FVector2D MovementVector = Value.Get(); + + if (APawn* ControlledPawn = GetPawn()) { - // add the player tag - DDICharacter->Tags.Add(PlayerPawnTag); + FRotator CameraRotation = GetControlRotation(); + FRotator YawRotation(0.f, CameraRotation.Yaw, 0.f); + + FVector ForwardDiection = FRotationMatrix(YawRotation).GetUnitAxis(EAxis::X); + FVector RightDirection = FRotationMatrix(YawRotation).GetUnitAxis(EAxis::Y); + + ControlledPawn->AddMovementInput(ForwardDiection, MovementVector.Y); + ControlledPawn->AddMovementInput(RightDirection,MovementVector.X); + + } +} + +void ADDIPlayerController::Look(const FInputActionValue& Value) +{ + const FVector2D LookAxisVector = Value.Get(); + + if (APawn* ControlledPawn = GetPawn()) + { + AddYawInput(LookAxisVector.X); + AddPitchInput(LookAxisVector.Y); + } +} + +void ADDIPlayerController::Jump(const FInputActionValue& Value) +{ + if (ACharacter* character = GetCharacter()) + { + character->Jump(); + } +} + +void ADDIPlayerController::JumpEnd(const FInputActionValue& Value) +{ + if (ACharacter* character = GetCharacter()) + { + character->StopJumping(); } } \ No newline at end of file diff --git a/Source/OpenConflict/PlayerCharacter/DDIPlayerController.h b/Source/OpenConflict/PlayerCharacter/DDIPlayerController.h index 964cc19..5225244 100644 --- a/Source/OpenConflict/PlayerCharacter/DDIPlayerController.h +++ b/Source/OpenConflict/PlayerCharacter/DDIPlayerController.h @@ -3,6 +3,8 @@ #pragma once #include "CoreMinimal.h" +#include "EnhancedInputComponent.h" +#include "EnhancedInputSubsystems.h" #include "GameFramework/PlayerController.h" #include "DDIPlayerController.generated.h" @@ -21,9 +23,15 @@ private: protected: /*Properties*/ - UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Shooter", meta = (AllowPrivateAccess = "true")) + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "INPUT", meta = (AllowPrivateAccess = "true")) TArray MappingContexts; - + + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "INPUT", meta = (AllowPrivateAccess = "true")) + UInputAction* JumpAction; + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "INPUT", meta = (AllowPrivateAccess = "true")) + UInputAction* MoveAction; + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "INPUT", meta = (AllowPrivateAccess = "true")) + UInputAction* LookAction; UPROPERTY(EditAnywhere, Category="Shooter") FName PlayerPawnTag = FName("Player"); @@ -49,9 +57,14 @@ protected: virtual void SetupInputComponent() override; virtual void BeginPlay() override; virtual void OnPossess(APawn *InPawn) override; + void Move(const FInputActionValue& Value); + void Look(const FInputActionValue& Value); + void Jump(const FInputActionValue& Value); + void JumpEnd(const FInputActionValue& Value); public: /*Properties*/ /*Functions*/ + ADDIPlayerController(); };