From 33f5971de15d4e700017e8ff929493cc344f3994 Mon Sep 17 00:00:00 2001 From: Jonathan Rampersad Date: Sun, 17 Nov 2024 20:09:20 -0400 Subject: [PATCH] Aura Player Controller Input Setup --- Source/Aura/Aura.Build.cs | 2 +- .../Private/Player/AuraPlayerController.cpp | 24 +++++++++++++++++++ .../Aura/Public/Player/AuraPlayerController.h | 13 +++++++++- 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/Source/Aura/Aura.Build.cs b/Source/Aura/Aura.Build.cs index 6fb614f..60ef6ed 100644 --- a/Source/Aura/Aura.Build.cs +++ b/Source/Aura/Aura.Build.cs @@ -8,7 +8,7 @@ public class Aura : ModuleRules { PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; - PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" }); + PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "EnhancedInput" }); PrivateDependencyModuleNames.AddRange(new string[] { }); diff --git a/Source/Aura/Private/Player/AuraPlayerController.cpp b/Source/Aura/Private/Player/AuraPlayerController.cpp index 91a0f62..0a75487 100644 --- a/Source/Aura/Private/Player/AuraPlayerController.cpp +++ b/Source/Aura/Private/Player/AuraPlayerController.cpp @@ -2,4 +2,28 @@ #include "Player/AuraPlayerController.h" +#include "EnhancedInputSubsystems.h" + +AAuraPlayerController::AAuraPlayerController() +{ + bReplicates = true; +} + +void AAuraPlayerController::BeginPlay() +{ + Super::BeginPlay(); + check(AuraContext); + + UEnhancedInputLocalPlayerSubsystem* Subsystem = ULocalPlayer::GetSubsystem(GetLocalPlayer()); + check(Subsystem); + Subsystem->AddMappingContext(AuraContext, 0); + + bShowMouseCursor = true; + DefaultMouseCursor = EMouseCursor::Default; + + FInputModeGameAndUI InputModeData; + InputModeData.SetLockMouseToViewportBehavior(EMouseLockMode::DoNotLock); + InputModeData.SetHideCursorDuringCapture(false); + SetInputMode(InputModeData); +} diff --git a/Source/Aura/Public/Player/AuraPlayerController.h b/Source/Aura/Public/Player/AuraPlayerController.h index 28a2be2..60059b1 100644 --- a/Source/Aura/Public/Player/AuraPlayerController.h +++ b/Source/Aura/Public/Player/AuraPlayerController.h @@ -6,6 +6,8 @@ #include "GameFramework/PlayerController.h" #include "AuraPlayerController.generated.h" +class UInputMappingContext; + /** * */ @@ -13,5 +15,14 @@ UCLASS() class AURA_API AAuraPlayerController : public APlayerController { GENERATED_BODY() - + +public: + AAuraPlayerController(); + +protected: + virtual void BeginPlay() override; + +private: + UPROPERTY(EditAnywhere, Category="Input") + TObjectPtr AuraContext; };