69 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Copyright Epic Games, Inc. All Rights Reserved.
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include "CoreMinimal.h"
 | |
| #include "Templates/SubclassOf.h"
 | |
| #include "GameFramework/PlayerController.h"
 | |
| #include "UTAD_UIPlayerController.generated.h"
 | |
| 
 | |
| /** Forward declaration to improve compiling times */
 | |
| class UNiagaraSystem;
 | |
| class UInputMappingContext;
 | |
| class UInputAction;
 | |
| 
 | |
| DECLARE_LOG_CATEGORY_EXTERN(LogTemplateCharacter, Log, All);
 | |
| 
 | |
| UCLASS()
 | |
| class AUTAD_UIPlayerController : public APlayerController
 | |
| {
 | |
| 	GENERATED_BODY()
 | |
| 
 | |
| public:
 | |
| 	AUTAD_UIPlayerController();
 | |
| 
 | |
| 	/** Time Threshold to know if it was a short press */
 | |
| 	UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Input)
 | |
| 	float ShortPressThreshold;
 | |
| 
 | |
| 	/** FX Class that we will spawn when clicking */
 | |
| 	UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Input)
 | |
| 	UNiagaraSystem* FXCursor;
 | |
| 
 | |
| 	/** MappingContext */
 | |
| 	UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Input, meta=(AllowPrivateAccess = "true"))
 | |
| 	UInputMappingContext* DefaultMappingContext;
 | |
| 	
 | |
| 	/** Jump Input Action */
 | |
| 	UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Input, meta=(AllowPrivateAccess = "true"))
 | |
| 	UInputAction* SetDestinationClickAction;
 | |
| 
 | |
| 	/** Jump Input Action */
 | |
| 	UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Input, meta=(AllowPrivateAccess = "true"))
 | |
| 	UInputAction* SetDestinationTouchAction;
 | |
| 
 | |
| protected:
 | |
| 	/** True if the controlled character should navigate to the mouse cursor. */
 | |
| 	uint32 bMoveToMouseCursor : 1;
 | |
| 
 | |
| 	virtual void SetupInputComponent() override;
 | |
| 	
 | |
| 	// To add mapping context
 | |
| 	virtual void BeginPlay();
 | |
| 
 | |
| 	/** Input handlers for SetDestination action. */
 | |
| 	void OnInputStarted();
 | |
| 	void OnSetDestinationTriggered();
 | |
| 	void OnSetDestinationReleased();
 | |
| 	void OnTouchTriggered();
 | |
| 	void OnTouchReleased();
 | |
| 
 | |
| private:
 | |
| 	FVector CachedDestination;
 | |
| 
 | |
| 	bool bIsTouch; // Is it a touch device
 | |
| 	float FollowTime; // For how long it has been pressed
 | |
| };
 | |
| 
 | |
| 
 |