text: // Fill out your copyright notice in the Description page of Project Settings.
  
  #pragma once
  
  #include "OpenWorldTutorial.h"
  #include "GameFramework/PlayerController.h"
  #include "MyPlayerController.generated.h"
  
  /**
   * 
   */
  UCLASS()
  class OPENWORLDTUTORIAL_API AMyPlayerController : public APlayerController
  {
  	GENERATED_BODY()
  	
  public:
  	AMyPlayerController();
  
  	virtual void PostInitializeComponents() override;
  
  	class UHUDWidget* GetHUDWidget() const;
  	void NPCKill(class AMyCharacter* KilledNPC) const;
  	void AddGameScore() const;
  	void ChangeInputMode(bool bGameMode = true);
  	void ShowResultUI();
  
  protected:
  	virtual void BeginPlay() override;
  	virtual void SetupInputComponent() override;
  
  	UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = UI)
  	TSubclassOf<class UHUDWidget> HUDWidgetClass;
  
  	UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = UI)
  	TSubclassOf<class UGamePlayWidget> MenuWidgetClass;
  
  	UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = UI)
  	TSubclassOf<class UGamePlayResultWidget> ResultWidgetClass;
  
  private:
  	UPROPERTY()
  	class UHUDWidget* HUDWidget;
  
  	UPROPERTY()
  	class AOWTPlayerState* OWTPlayerState;
  
  	void OnGamePause();
  
  	UPROPERTY()
  	class UGamePlayWidget* MenuWidget;
  
  	FInputModeGameOnly GameInputMode;
  	FInputModeUIOnly UIInputMode;
  
  	UPROPERTY()
  	class UGamePlayResultWidget* ResultWidget;
  };
  