首页 > 编程语言 >UE4 C++关联蓝图界面(仅显示)

UE4 C++关联蓝图界面(仅显示)

时间:2023-10-15 22:56:18浏览次数:46  
标签:ATencent1GameMode 界面 BeginPlay 蓝图 C++ xx CustomWidgetIns UE4

使用的自带第三人称c++模板,UE4.27

实现教程参考:UE5虚幻引擎C++【第六期】实现UMG控件_哔哩哔哩_bilibili

1.创建一个蓝图界面控件,设置好布局

2.找到项目代码xx(项目名称).build.cs文件

1)添加UMG及后续部分,使得可以调用蓝图模块相关内容

PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "HeadMountedDisplay", "UMG",  "Slate","SlateCore" });
PrivateDependencyModuleNames.AddRange(new string[] {  });

3.找到项目代码中xx(项目名称)GameMode.h文件

1)添加头文件

#include "Blueprint/UserWidget.h"

2)类中添加虚函数BeginPlay,后续作为游戏运行即调用界面,CustomWidgetIns是自定义用户界面

class ATencent1GameMode : public AGameModeBase
{
    GENERATED_BODY()

public:
    ATencent1GameMode();

protected:
    virtual void BeginPlay() override;

private:
    UUserWidget* CustomWidgetIns;
};

4.找到项目代码中xx(项目名称)GameMode.cpp文件

1)初始化CustomWidgetIns = nullptr;

2)编写BeginPlay()函数

void ATencent1GameMode::BeginPlay()
{
    Super::BeginPlay();
    if (UClass* CustomWidgetClass = LoadClass<UUserWidget>(nullptr, TEXT("WidgetBlueprint'/Game/HUD.HUD_C'"))) {//loadclass就是关联到我们一开始创建的界面,注意右键复制界面的引用同时在地址最后加_C
        if (APlayerController* PC = GetWorld()->GetFirstPlayerController()) {//检查是否存在有效的玩家控制器并获取第一个
            CustomWidgetIns = CreateWidget(PC, CustomWidgetClass);
            if (CustomWidgetIns) {
                CustomWidgetIns->AddToViewport();//将界面添加到视口
            }
        }
    }
}

5.编译后可成功加载界面,比如左上角显示用户名

标签:ATencent1GameMode,界面,BeginPlay,蓝图,C++,xx,CustomWidgetIns,UE4
From: https://www.cnblogs.com/lofu/p/17766393.html

相关文章

  • UE4 VectorParameter float3 nor float
    问题在UE4.27的版本中,VectorParameter的类型是float3而不是float4,这就导致在实例化函数时会少一个float,十分麻烦解决运用"append"即可referencehttps://forums.unrealengine.com/t/vectorparameter-incorrectly-converted-to-materialfloat3-in-custom-node/334226/6......
  • VSCode 配置C++环境
    MinGW肯定要装的。复制json这篇就够了,但终端会闪掉:VsCode安装和配置c/c++环境(超完整,小白专用)_vscodec++环境-CSDN博客这篇文章配终端:VSCode中C/CPP的完美配置(完成环境搭建、解决终端自动闪退、解决无法调试)-知乎(zhihu.com)......
  • C++学习笔记Day1
    有关const的一些事1.const对象必须初始化,因为const对象一旦创建,其值不能再被改变。2.const对象是常量,因此可以赋予其字面值。3.普通变量默认支持多文件下共享,而const默认不支持,需要在定义和声明是都加上关键字extern才能在多个文件中使用。4.所谓“常量引用”指的是“对const......
  • C++基础认识(新手村)day2
    引用的使用场景1.引用作为函数参数//1.引用作为函数参数voidfun1(int&a,int&b){ intsum=a+b; cout<<"sum="<<sum<<endl;}voidtest1(){ inta=10; intb=20; fun1(a,b);}2.引用作为函数的返回值//2.引用作为函数的返回值int&fun2(){ intb......
  • C++原始数据类型
    不同数据类型之间唯一的区别就是大小,根据分配内存来决定使用哪种数据类型来创建变量几种基础数据类型int(integar)该数据类型允许我们在给定的范围内存储一个整数传统上int是四字节大小的数据类型,实际大小根据所选择编译器的不同而有所不同char一个字节的数据类型传统上用......
  • C++ 引用本质
    @TOC前言C++引用及其本质在C++中,引用是一项强大而灵活的特性,允许程序员通过引用访问和修改变量的值。本文将深入探讨C++引用的本质、用法、优势以及与指针的比较等方面。1.引用的基本概念引用是C++中的一个别名,用于标识已经存在的对象或值。引用通过在变量声明时使用&符号来创建,......
  • C++ 引用本质
    @TOC前言C++引用及其本质在C++中,引用是一项强大而灵活的特性,允许程序员通过引用访问和修改变量的值。本文将深入探讨C++引用的本质、用法、优势以及与指针的比较等方面。1.引用的基本概念引用是C++中的一个别名,用于标识已经存在的对象或值。引用通过在变量声明时使用&符号来创建,......
  • C++类内存布局与虚继承
    类的内存布局本文参考浅析C++类的内存布局,做了一些修改和补充1.无继承的情况为了得到类的内存布局,先设置一下输入/d1reportAllClassLayout,结果会在输出窗口打印出。最后会打印很多类,基本上最后就是自己的类的布局,也可以指定类。如果写上/d1reportSingleClassLayoutXXX(X......
  • C++多态与虚函数
    多态与虚函数1.什么是多态所谓多态,就是同一个函数名具有多种状态,或者说一个接口具有不同的行为;C++的多态分为编译时多态和运行时多态,编译时多态也称为为静态联编,通过重载和模板来实现,运行时多态称为动态联编,通过继承和虚函数来实现。1.1编译时多态重载(Overloading)是指同一......
  • c++ 线段树模板
    洛谷模板:P3372【线段树1】 #include<bits/stdc++.h>#defineintlonglongusingnamespacestd;constintN=1e5+10;inta[N],d[N<<2],b[N<<2];intn,q;inlinevoidbuild(intl,intr,intp){if(l==r){d[p]=a[l];......