UE4自定义点击区域的Button
一、创建继承与Button的C++文件

二、在项目.Build.cs文件中添加如下引用

PrivateDependencyModuleNames.AddRange(new string[] {
"UMG", "Slate", "SlateCore" });

三、代码
.h
#pragma once
#include "Engine.h"
#include "Runtime/UMG/Public/UMG.h"
#include "Runtime/UMG/Public/UMGStyle.h"
#include "CoreMinimal.h"
#include "Components/Button.h"
#include "CustomButton.generated.h"
class BUTTONTEST_API SCumstomButton : public SButton
{
public:
UTexture2D* AdvancedHitTexture;
int AdvancedHitAlpha;
SCumstomButton() : AdvancedHitTexture(NULL), AdvancedHitAlpha(0) {
}
void SetAdvancedHitTexture(UTexture2D* InTexture)
{
AdvancedHitTexture = InTexture;
}
void SetAdvancedHitAlpha(int InAlpha)
{
AdvancedHitAlpha = InAlpha;
}
virtual FReply OnMouseButtonDown(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent) override
{
if (!bIsHovered) return FReply::Unhandled();
return SButton::OnMouseButtonDown(MyGeometry, MouseEvent);
}
virtual FReply OnMouseButtonDoubleClick(const FGeometry& InMyGeometry, const FPointerEvent& InMouseEvent) override
{
if (!bIsHovered) return FReply::Unhandled();
return SButton::OnMouseButtonDoubleClick(InMyGeometry, InMouseEvent);
}
virtual FReply OnMouseButtonUp(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent) override
{
if (