首页 > 编程语言 >UE4 C++ Widget的NativeConstruct 与 NativePreConstruct

UE4 C++ Widget的NativeConstruct 与 NativePreConstruct

时间:2024-03-29 19:33:24浏览次数:15  
标签:Widget 调用 NativePreConstruct NativeConstruct UE UE4 PlayerController

构造函数

由于Widget是由UE的反射系统创建的,其生命周期由UE引擎管理,所以并不存在构造函数,UE为Widget类定义了两个虚函数NativeConstruct 与 NativePreConstruct来充当构造函数的作用。而这两个函数的调用都必须在Widget被实例化之后才能进行调用

如何在Widget中获取角色

在蓝图节点中我们可以通过GetPlayerPawn来获得

而在C++代码中,需要传入一个UObject的实参。由于Widget是存在与用户界面而不是游戏逻辑。所以一般采用获取PlayerController来获取角色,当然如果使用的是HUD为父类就不用这么麻烦了

	AXPlayerController* PlayerController = GetOwningPlayer<AXPlayerController>();
	if (PlayerController)
	{
		// 获取PlayerController当前控制的Pawn
		MyPawn = Cast<AXPawn>(PlayerController->GetPawn());
	}
	if (MyPawn == nullptr)
	{
		UE_LOG(LogTemp, Warning, TEXT("No Pawn!!!!!!!"));
		return;
	}

NativeConstruct 与 NativePreConstruct的调用先后顺序

NativePreConstruct先调用

当一个Widget类对象作为另外一个Widget的成员变量时,NativeConstruct 与 NativePreConstruct的调用顺序

XDebugMenuWidget类中有XCameraDebugWidget对象
XCameraDebugWidget类中有XSpinwithNameWidget对象
可以看到会从“子类”向“父类”依次创建

标签:Widget,调用,NativePreConstruct,NativeConstruct,UE,UE4,PlayerController
From: https://www.cnblogs.com/XTG111/p/18104453

相关文章

  • 【QT入门】 QListWidget各种常见用法详解之图标模式
    往期回顾【QT入门】Qt代码创建布局之多重布局变换与布局删除技巧-CSDN博客【QT入门】QTabWidget各种常见用法详解-CSDN博客【QT入门】QListWidget各种常见用法详解之列表模式-CSDN博客【QT入门】QListWidget各种常见用法详解之图标模式QListWidget有列表和图标两种......
  • 【QT入门】 QTabWidget各种常见用法详解
    往期回顾:【QT入门】Qt代码创建布局之分裂器布局详解-CSDN博客【QT入门】Qt代码创建布局之setLayout使用-CSDN博客【QT入门】Qt代码创建布局之多重布局变换与布局删除技巧-CSDN博客 【QT入门】QTabWidget各种常见用法详解一般来说,学一个新的控件,首先要看他是怎么构......
  • Qt小知识4.QWindow和QWidget
    1引言QWindow和QWidget都是Qt框架中用于创建和管理窗口的类,但它们在设计上服务于不同的目的和场景。这两者的区别不仅体现在API设计上,还体现在它们在Qt框架中的角色和使用方式上。2典型区别2.1继承结构和依赖QWidget继承自QObject和QPaintDevice,是所有窗口部......
  • UE4 存档
    基本目标:存档按键TAB保存P键显示读档界面读档后位置重置到读档内容存档界面关于每一条信息的变量和读取按钮点击事件存档存档主要的逻辑是存到内存中并存到本地显示的就是内存中的打开关卡时加载本地到内存其实整个保存的目前只是一个Location,应该封装成对象比较好,......
  • UE4.27, 代码实践, 资源加载 FSoftClassPath / FSoftObjectPath
    //以下的FSoftClassPath/FSoftObjectPath都公开在Editor里设定 //iteminTArray<FSoftClassPath>FSoftClassPathtemp=FSoftClassPath_UsedInBluePrint_BuildFunc(item);UClass*LoadedClass=temp.TryLoadClass<AActor>();FSoftClassPathFSoftClassPath_UsedInBlu......
  • UE4 UI
    2DUI点击后控制权切换制作2DUIDesignerGraph在关卡蓝图/控制器类中使用UI【一般是控制器类】效果暂停游戏制作UI暂停游戏点击事件增添UI动画3DUI全自动/半自动制作UI添加点击事件制作UI蓝图类并连接到UI上增加WidgetInteraction设置一个对外的......
  • QtableWidget 表头增加复选框简单实现方法
    1.最近再开发一个批量查询上传的小工具,要增加一个批量选择的复选框,全选或者全不选;QCheckBox*checkBox=newQCheckBox(ui.tableWidget);checkBox->resize(40,24);ui.tableWidget->setCellWidget(0,0,checkBox);checkBox->setStyleSheet("margi......
  • UE4 创建角色 绑定动画 蒙太奇动画
    UE4文档:https://docs.unrealengine.com/4.27/zh-CN/AnimatingObjects/SkeletalMeshAnimation/CharacterSetupOverview/角色-动画蓝图动画蓝图中包含多种动画创建角色输入【这里设置使用OrientRotationtoMovement后,没用,发现是需要设置摇臂中的UsePawnControlRotati......
  • UE4 射线检测 拾取物品
    第一视角玩家这里比较重要的点是PickUp是一个接口,调用的是接口PickUp接口定义接口实现接口的Actor类继承这个接口,实现的时候,就变成了事件(当接口没有返回值时就可以作为事件被触发)在Projectsetting中添加tracechannel,在碰撞体上勾选一开始的时候,把网上找的骨骼网格放进......
  • UE4上下车
    上下车描述上车:车获得控制权玩家做到位置上玩家和车一起动进入感应区按F上车下车:玩家获得控制权玩家下车位置解除一起动的关系车减速停下版本1ThirdPersonCharacter增加IsInSedan的变量增加Car的变量Sedan蓝图类-上下车事件图表增加ThirdPersonCharacter的变量......