【虚幻C++笔记】与UMG的交互

UI控件的绑定方式

第一种方式

UPROPERTY(meta=(BindWidget))

UPROPERTY 中的 meta = (BindWidget) 标记的作用是将 C++ 类中的变量(widget成员变量)与蓝图中的UI元素(widget元素)进行绑定(例如 ButtonTextBlock 等)。

  • 当在C++自定义的UUserWidget的子类中,创建一个成员UButton*,然后在编辑器派生一个蓝图UMG,在其中创建一个UI 控件(比如 Button),并将其命名为 PointSmall(名字与子类中的变量名必须相同,否则会无法编译该UMG),在C++ 代码中使用 UPROPERTY 变量并加上 meta = (BindWidget),UE会在运行时自动将蓝图中的Button 控件实例与 C++ 中的 UButton* PointSmall 变量进行绑定。
  • 当 UMG蓝图加载时,使用 BindWidget 标记的控件会自动被初始化并赋值给相应的 C++ 变量。
.h文件
UPROPERTY(meta=(BindWidget))
UButton* Btn_Register;

第二种方式

GetWidgetFromName(TEXT("Btn_Register"))
.h文件
UPROPERTY()
UButton* Btn_Register;
 
.cpp文件
void UMyUserWidget::NativeConstruct()
{
	Super::NativeConstruct();
	Btn_Register = Cast<UButton>(GetWidgetFromName(TEXT("Btn_Register")));
	Btn_Register->OnClicked.AddDynamic(this,&UMyUserWidget::OnStartUIclickEvent);
}

UI中常用函数的重载

在这里插入图片描述

在C++中我们输入NativeXXX(),可以找到这些我们熟悉的函数。

在这里插入图片描述

控制UMG组件的动画

UUserWidget* MyWidget = Cast<UUserWidget>(YourUMGReference);
if (MyWidget) {
    UWidgetAnimation* Animation = MyWidget->GetAnimationCurrentTime(TEXT("YourAnimationName")); // 获取动画引用
    if (Animation) {
        MyWidget->PlayAnimation(Animation, 0.0f, 1, EUMGSequencePlayMode::Forward, 1.0f); // 播放动画
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值