// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "GameFramework/PlayerController.h" #include "HorrorPlayerController.generated.h" class UInputMappingContext; class UHorrorUI; /** * Player Controller for a first person horror game * Manages input mappings * Manages UI */ UCLASS(abstract) class FIRST_API AHorrorPlayerController : public APlayerController { GENERATED_BODY() protected: /** Type of UI widget to spawn */ UPROPERTY(EditAnywhere, Category="Horror|UI") TSubclassOf HorrorUIClass; /** Pointer to the UI widget */ TObjectPtr HorrorUI; public: /** Constructor */ AHorrorPlayerController(); 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 */ TObjectPtr MobileControlsWidget; /** Gameplay Initialization */ virtual void BeginPlay() override; /** Possessed pawn initialization */ virtual void OnPossess(APawn* aPawn) override; /** Input mapping context setup */ virtual void SetupInputComponent() override; };