// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "GameFramework/PlayerController.h" #include "MyProjectPlayerController.generated.h" class UInputMappingContext; class UUserWidget; /** * Basic PlayerController class for a third person game * Manages input mappings */ UCLASS(abstract) class AMyProjectPlayerController : public APlayerController { GENERATED_BODY() protected: /** Input Mapping Contexts */ UPROPERTY(EditAnywhere, Category ="Input|Input Mappings") TArray DefaultMappingContexts; /** Input Mapping Contexts */ UPROPERTY(EditAnywhere, Category="Input|Input Mappings") TArray MobileExcludedMappingContexts; /** Mobile controls widget to spawn */ UPROPERTY(EditAnywhere, Category="Input|Touch Controls") TSubclassOf MobileControlsWidgetClass; /** Pointer to the mobile controls widget */ UPROPERTY() TObjectPtr MobileControlsWidget; /** If true, the player will use UMG touch controls even if not playing on mobile platforms */ UPROPERTY(EditAnywhere, Config, Category = "Input|Touch Controls") bool bForceTouchControls = false; /** Gameplay initialization */ virtual void BeginPlay() override; /** Input mapping context setup */ virtual void SetupInputComponent() override; /** Returns true if the player should use UMG touch controls */ bool ShouldUseTouchControls() const; };