UE4和C++ 开发-C++与UMG的交互2(C++获取UMG的属性)

这篇具有很好参考价值的文章主要介绍了UE4和C++ 开发-C++与UMG的交互2(C++获取UMG的属性)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、...C++获取UMG的属性

1.1、第一种方法:通过名称获取控件。
void UMyUserWidget::NativeConstruct()
{
	Super::NativeConstruct();
 
	//通过名字,获取蓝图控件中的按钮引用。
	CtnClic = Cast<UButton>(GetWidgetFromName(TEXT("Button_44")));
	if (CtnClic)
	{
 
		//绑定到自定义函数
		CtnClic->OnClicked.AddDynamic(this, &UMyUserWidget::TestButtonClick);
	}
}
 
void UMyUserWidget::TestButtonClick()
{
    //测试代码
	UE_LOG(LogTemp, Log, TEXT("dddddd"));
 
    //获取预定义属性后,还要转化为标准属性才能进行操作
	UCanvasPanelSlot* Slot = Cast<UCanvasPanelSlot>(CtnClic->Slot);
	if (Slot)
	{
		
	}
}

优点:可以拿到对象引用,调用系统预定义好的事件(函数)。

缺点:无法拿到在蓝图中创建的属性,可以C++创建控件父类,属性也在C++中定义,这样的话可以拿到。

1.2、第二种方法:通过宏绑定控件(控件类型和名称必须和蓝图添加的一致,并且在蓝图中添加同名同类型的控件)

步骤1:在C++中创建指针

	//第二种方法		这两个标记必须要添加!!!
	UPROPERTY(BlueprintReadWrite, meta=(BindWidget))
		class UButton* TestButton2;

步骤2:在蓝图中创建对象,名字为C++中的变量名。(相当于在C++中声明,在蓝图中进行定义)

UE4和C++ 开发-C++与UMG的交互2(C++获取UMG的属性),UE4和C++,C++,ue4,ue4,c++,开发语言文章来源地址https://www.toymoban.com/news/detail-713047.html

到了这里,关于UE4和C++ 开发-C++与UMG的交互2(C++获取UMG的属性)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • UE4-UMG点击播放关卡序列(Level Sequence)

    1.在UE4关卡蓝图中播放关卡序列步骤 (1)把创建好的关卡序列拖入场景中 (2)选中需要播放的关卡序列,在关卡蓝图中添加引用 (3)添加play节点 运行时就能轻松播放关卡序列了 2.在UMG中点击按钮播放关卡序列有两种方法 方法一: (1)添加创建关卡序列播放器,选择需要

    2023年04月15日
    浏览(35)
  • Vue3 + UE4+ 像素流 + 交互 的开发构建流程

    1、将对应 UE 4.27 版本的 webRtcPlayer.js 复制到项目的 public/ue 文件夹下(作为静态资源) 2、根目录下的 index.html 中引入 ue/webRtcPlayer.js index.html 中引入 webRtcPlayer.js 3、将对应 UE 4.27 版本的 app.js 复制到项目的 main.ts 同级目录下,可以改名为 ueapp.js 4、修改 ueapp.js 中的内容,用于解

    2024年02月04日
    浏览(27)
  • UE4和C++ 开发--HUD类

    HUD 平视显示器(Head Up Display),简称HUD。在蓝图中是指在屏幕上面绘制的二维物体。 1. 创建HUD 打开蓝图编辑器,创建一个蓝图类,搜索HUD,选择并命名BP_HUD。 2. 开始绘制 打开事件列表,右键搜索 EventReceive Draw HUD。有两个输入分别是X,Y,分别代表屏幕的宽度和屏幕的高度。我们

    2024年02月07日
    浏览(28)
  • Stanford UE4 & UE5 C++ 开发 课程笔记(三)子弹物理碰撞与弹道校正

    Unreal中两个物体碰撞需要两方预设的碰撞通道中对方对应的类型都设置为 Block 。 在场景中设置一个cube,并将其进行适当拉伸: 选中放置好的cube,在 Collision 中将 Collision Presets 设为 Custom ,并将每一项置为 Block : 注意cube的默认类型是 WorldStatic 。 在 Project Setting - Engine - Co

    2024年02月15日
    浏览(43)
  • 一.《UE4奥丁》人物最大属性

    1.续上节课,此时看到标题,有基础的同学第一反应就是,老师用CE搜索血量,通过改变就能找到! 2.额,有这么简单吗! 3.既然写了这个帖子,肯定是有原因的 4.为了方便学习,我们就先按照同学们的思路来试一试,能不能找到最大属性,比如最大血! 5.首先老生常谈打开游戏,用CE附加游

    2024年02月11日
    浏览(42)
  • UE4 控件蓝图与蓝图的交互

    我现在想实现的是点击场景中的一个蓝图中的某个静态网格体,然后在控件蓝图中的文本控件中就能显示这个被点击的静态网格体的名称。 首先我在控件蓝图中对其中的一个文本控件创建了一个绑定函数 绑定函数的逻辑如下: “整车 内部无系统”是我添加的一个变量,该变

    2024年02月11日
    浏览(29)
  • UE4 UltraDynamicSky 天气与水体交互

    最上面的Lerp的A通道为之前的水面效果,B是做的冰面效果 用Dynamic_Landscape_Weather_Effects的BaseColor的R通道四舍五入作为Lerp的Alpha值 使用一张贴图,乘以RadialGradientExponential对材质边缘做弱化,RadialGradientExponential的Raidius让BaseColor与一个常量相乘,这样可以做出小雪,中雪,大雪对

    2024年02月06日
    浏览(25)
  • UE4 3DUI显示与交互案例

    实现效果:   实现步骤: 1.打开一个第一人称游戏模板,创建控件蓝图,命名为 全自动_UMG    2.双击打开全自动_UMG,创建两个按钮  3.新建一个蓝图,命名为3DUI_test   4.双击打开3DUI_test,添加一个控件组件    5.选中widget组件,控件类选为全自动_UMG  6.选中widget,设置绘制大

    2023年04月18日
    浏览(35)
  • UE4运用C++和框架开发坦克大战教程笔记(十五)(第46~48集)

    逻辑和批量加载同类 UObject 资源的逻辑差不多。区别在 DealClassKindLoadStack() 内,如果已经有资源率先加载完成了,那后续资源加载的途中我们想让已经加载好的资源执行额外的处理逻辑(比如让它每帧生成),我们就需要补充额外的判断条件,即判断其是否第一次生成完毕。

    2024年01月25日
    浏览(38)
  • UE4运用C++和框架开发坦克大战教程笔记(十一)(第34~36集)

    我们前面已经在一个类里面实现了一套可行的协程系统,接下来我们需要通过宏来将它们变得更加方便可用,不必每次都写这么多代码。 将 CoroActor 头文件里的委托声明语句以及两个结构体全复制到 DDTypes 下,改成通用的结构。下面只列出需要更改的代码。 DDTypes.h 来到 Cor

    2024年02月03日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包