[指导]:
【前言】:
不过本人水平有限,所以本文废话较多,请谨慎阅读。
[1.]:视频教程 [2.]:UE4 C++基础系列 [3.]:UI实现原理:
【4.】:经常混淆的关键词梳理
经常混淆的关键词,比如Slate、UMG、UI、HUD,会在前言中整理出来。
UMG(UI) - 是工具,可视化UI创建工具,是环境(负责可视化,Graph负责控制事件定义)
HUD(抬头)————控制
【5.】:温馨提示
我感觉初学者学习C++就是一个不断寻找英文句子和各种符号含义的过程,这和阅读理解类似。
我认为学习代码应该分为这几个阶段:
掌握
在学习的过程中肯定有很多你不知道的事情。 您可以通过以下方式检查它们。
在VS中,鼠标悬停在语句上会弹出提示框,可以快速查看对应的含义。
2.网页上官方C++ API(或者当你点击鼠标悬停在上面时,会自动使用Bing搜索关键字,类似于在内容浏览器资源上右键查看/查看完整)
3、如果想了解更多,可以在当前文档中右键打开小窗口快速浏览或者到源文件查看对应的代码。
1.准备工作【1.1】创建一个基础C++类(,,HUD)并创建一个新地图——->Map->New 设置项目默认地图——->Maps & Modes 设置为项目默认地图 New C++要保证——头文件,在源文件路径后面添加/,这样可以放到文件夹中,更有条理(如果报错无法生成文件,VS稍后处理)
4.新建为,相同
5. 创建一个新的HUD(像UI一样把它放在屏幕上,但不需要手动做),同上。
如果出现错误,请按照提示在cpp中添加文件路径前缀:如何解决UE4中添加C++类失败的问题?
【1.2】世界设置为新创建的自定义职业
2、VS Code编辑器配置【2.1】.Build.cs中添加Slate和模块
当然,内部原理更加复杂。 就等新手简单了解一下具体的功能,后面再深入了解原理吧。
如果我们想使用 Slate UI,我们只需取消注释即可。
新增格式为字符串,名称为Slate,为私有从块名称。
语句行、Ctrl+K、Ctrl+U() (Ctrl+C())
PrivateDependencyModuleNames.AddRange(new string[] {"Slate"、"SlateCore"});
[2.2] 使用插件在.h头文件中快速创建新的构造函数,并为成员变量添加Set/Get方法,如构造函数、
【2.3】()与Y()的区别 ()
之前我们已经了解到Super()的作用是在调用这个函数之前先调用父类中的函数。
默认为(),本节只是简单了解一下两者的区别。
【2.4】#HUD和源文件中的头文件
比如cpp员工就得自己领导,还有另外两个领导。 注意路径,或者UI文件夹,不然下面会出现一堆姨妈红。
//ShitGameMode.cpp
// Fill out your copyright notice in the Description page of Project Settings.
#include "GamePlay/ShitGameMode.h"
#include "GamePlay/ShitController.h"
#include "UI/HUD/ShitHUD.h"
AShitGameMode::AShitGameMode()
{
}
【2.5】补充cpp源文件中的构造函数定义dll文件声明,并细化配置。
阐明:
代码中的=等号其实和编辑器中选择一个枚举是一样的,就像完成详细的参数一样,比如HUD等等。 我们直接写在代码中,不允许在编辑器中进行枚举和选择。
// ShitGameMode.cpp
#include "GamePlay/ShitGameMode.h"
#include "GamePlay/ShitController.h"
#include "UI/HUD/ShitHUD.h"
AShitGameMode::AShitGameMode()
{
PlayerControllerClass = AShitController::StaticClass();
HUDClass = AShitHUD::StaticClass();
}
【2.6】施工检验
在编辑器中可以看到VS中定义的所有属性都被传递过去了,无法更改。
3. VS Code 编辑器配置 [3.1] 构造函数定义语句出现在头文件中。 就像在头文件中声明构造函数,然后用Alt+C将鼠标悬停在构造函数上一样,可以通过插件快速定义cpp中构造函数的基本语法,即创建声明的实现。
// ShitController.h
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/PlayerController.h"
#include "ShitController.generated.h"
/**
*
*/
UCLASS()
class TESTGAME_API AShitController : public APlayerController
{
GENERATED_BODY()
public:AShitController(); //在此Alt+C
};
//ShitController.cpp
#include "GamePlay/ShitController.h"
AShitController::AShitController() //Alt+C 结果
{
}
该函数的详细定义见[3.2]
【1】=真; 显示鼠标
【2】设置只接受鼠标输入并将鼠标锁定在窗口内
初始函数虚函数在头文件中声明为默认代码 - void (); 与Alt+C创建函数声明相同。源文件定义鼠标被锁定在窗口内。
// Fill out your copyright notice in the Description page of Project Settings.
#include "GamePlay/ShitController.h"
AShitController::AShitController()
{
bShowMouseCursor = true;
}
void AShitController::BeginPlay()
{
FInputModeUIOnly InputMode;
InputMode.SetLockMouseToViewportBeh *** ior(EMouseLockMode::LockAlways);
SetInputMode(InputMode);
}
【3.3】搭建检验VS游戏。 热更新后,可以看到所有定义的Class都过来了。
然后运行Game独立游戏模式Alt+P查看结果:可以看到鼠标显示并卡在窗口中。
4. VS Code编辑器配置【4.1】新建两个
【操作】:
【防范措施】:
【4.2】HUD基本代码配置
// ShitHUD.h
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/HUD.h"
#include "ShitHUD.generated.h"
/**
*
*/
UCLASS()
class TESTGAME_API AShitHUD : public AHUD
{
GENERATED_BODY()
public:
AShitHUD(); //声明构造函数
}
//ShitHUD.cpp
#include "UI/HUD/ShitHUD.h"
#include "UI/Widget/SShitMenuHUDWidget.h"
#include "SlateBasics.h"
AShitHUD::AShitHUD()
{ };
【4.3】绑定HUD并添加到游戏窗口。
参考官方文档-在游戏中使用Slate
未经允许不得转载! 作者:admin,转载或复制请以超链接形式并注明出处天心神途传奇手游发布网。
原文地址:《dll文件声明 [UE4] C++ 基础知识 [02] 将 Slate 添加到窗口》发布于:2024-03-18





还没有评论,来说两句吧...