49 lines
2.2 KiB
C++
49 lines
2.2 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "GIPS_InputProcessor.h"
|
|
#include "PHYInputProcessor_Move.generated.h"
|
|
|
|
/**
|
|
* @brief PHY 移动输入处理器。
|
|
*
|
|
* 该处理器处理 `Input.Move`,并把二维输入值路由到当前玩家控制器和玩家角色。
|
|
*/
|
|
UCLASS(BlueprintType, Blueprintable, EditInlineNew, DefaultToInstanced)
|
|
class PHY_API UPHYInputProcessor_Move : public UGIPS_InputProcessor
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
/** @brief 构造默认响应的输入 Tag 和触发事件。 */
|
|
UPHYInputProcessor_Move();
|
|
|
|
protected:
|
|
/** @brief 检查当前输入组件是否能处理移动输入。 */
|
|
virtual bool CheckCanHandleInput_Implementation(UGIPS_InputSystemComponent* IC, const FInputActionInstance& ActionData, FGameplayTag InputTag, ETriggerEvent TriggerEvent) const override;
|
|
|
|
/** @brief 处理 Triggered 移动输入。 */
|
|
virtual void HandleInputTriggered_Implementation(UGIPS_InputSystemComponent* IC, const FInputActionInstance& ActionData, FGameplayTag InputTag) const override;
|
|
|
|
/** @brief 处理 Started 移动输入。 */
|
|
virtual void HandleInputStarted_Implementation(UGIPS_InputSystemComponent* IC, const FInputActionInstance& ActionData, FGameplayTag InputTag) const override;
|
|
|
|
/** @brief 处理 Ongoing 移动输入。 */
|
|
virtual void HandleInputOngoing_Implementation(UGIPS_InputSystemComponent* IC, const FInputActionInstance& ActionData, FGameplayTag InputTag) const override;
|
|
|
|
/** @brief 处理 Canceled 移动输入。 */
|
|
virtual void HandleInputCanceled_Implementation(UGIPS_InputSystemComponent* IC, const FInputActionInstance& ActionData, FGameplayTag InputTag) const override;
|
|
|
|
/** @brief 处理 Completed 移动输入。 */
|
|
virtual void HandleInputCompleted_Implementation(UGIPS_InputSystemComponent* IC, const FInputActionInstance& ActionData, FGameplayTag InputTag) const override;
|
|
|
|
/** @brief 返回编辑器里显示的处理器名称。 */
|
|
virtual FString GetEditorFriendlyName_Implementation() const override;
|
|
|
|
private:
|
|
/** @brief 将移动输入发送给玩家控制器。 */
|
|
bool RouteMoveInput(UGIPS_InputSystemComponent* IC, const FInputActionInstance& ActionData, ETriggerEvent TriggerEvent) const;
|
|
};
|