05 2021 档案
摘要:概述 名词区分 Slate Slate 是完全自定义、与平台无关的UI框架 应用 可用于编辑器UI,编辑器的大部分界面都是使用 Slate 构建的 可做为游戏UI 可作为独立应用开发 只能 C++ 开发 可以调用 UMG,使用TakeWidget() HUD HUD通常只显示,不互动 可绘制文本、线
阅读全文
摘要:Tick的三种方式 包括 默认 Tick (Actor、Component、UMG) TimerManager 定时器 FTickableGameObject 可以写原生 Object 也可以继承UObject 使用 下面利用 AActor 直接实现三种 Tick class FTickableOb
阅读全文
摘要:UE4 概念知识 基础概念:文件结构、类型、反射、编译、接口、垃圾回收、序列化【导图】 GamePlay架构【导图】 类的继承层级关系【导图】 Actor 的生命周期【官方文档】 虚幻引擎运行流程 渲染流程 / 渲染管线Pipeline 垃圾回收机制/算法 序列化 UE4 C++ 基础编程 一些相关
阅读全文
摘要:B站虚幻引擎官方账号 update(2022.12): 更新 UOD2022 视频(后续移动到对应目录) 更新 UF2022 视频(后续移动到对应目录) 更新 英文直播至最新 UOD 2022 Unreal Open Day 2022完整议程 [UOD2022]基于Lumen的静态烘焙实践 | Fu
阅读全文
摘要:概述 定义 Subsystems 是一套可以定义、自动实例化和释放的类的框架。可以将其理解为 GamePlay 级别的 Component 不支持网络赋值 4.22开始引入,4.24完善。(可以移植源码到更早之前的版本使用。源码在手,为所欲为) 五类 Subsystems 及其生命周期 UEngin
阅读全文
摘要:概述 UE4 中主要使用 Project Launcher 来进行补丁和DLC的制作 补丁与 DLC 都需要基于某个版本而制作 补丁 与 DLC 最后以 Pak 形式表现, 补丁的 pak 可以重命名,但最后以 _p.pak 结尾 Pak 会根据 PakOrder 来排序挂载 Paks 目录下 ,项
阅读全文
摘要:简述 自动化工具(Unreal Automation Tool,简称 UAT) 自动化工具使用特定的命令 BuildCookRun 封装流程包含 构建(Build):该阶段将为所选择的平台编译可执行文件。 烘培(Cook):该阶段通过在特殊模式下执行编辑器来转化内容。 暂存(Stage):该阶段将可
阅读全文
摘要:简介 通过 UnrealPak,可以将资源打包成 Pak 文件 Pak文件是UE4游戏生成的数据包文件。 Pak 之前一般先有 Cooked 步骤,将资源烘焙为对应平台支持的资源 一般打包后的项目使用 Cooked 过的 pak PIE 使用未 Cooked 过的 pak Pak 一般放在游戏路径下
阅读全文
摘要:资源烘焙 虚幻引擎以内部使用的特定格式存储内容资源,将内容从内部格式转换为特定于平台的格式的过程 称为 烘焙((Cooking) 从编辑器烘焙资源 FIle → Cook Content for Windows 从命令行烘焙资源 默认保存 %ProjectDir%/Saved/Cooked/[Tar
阅读全文
摘要:简介 常见存储路径 \Engine\Config\ \Engine\Saved\Config\ (运行后生成) [ProjectName]\Config\ [ProjectName]\Saved\Config (运行后生成) 打包文件 Development/Debug 打包目录\项目名称\Save
阅读全文
摘要:UDataAsset 简介 用来存储数据,每一个DataAsset 都是一份数据 可以派生,系统自带派生 UPrimaryDataAsset 方便数据对象的加载和释放 可以引用其他的 UDataAsset 可以存储UObject 实例 可以BulkEdiit 批量编辑多个 UDataAsset 灵活
阅读全文
摘要:创建 SaveGame 类 继承自 USaveGame UCLASS() class TIPS_API USimpleSaveGame : public USaveGame { GENERATED_BODY() public: UPROPERTY(EditAnywhere) FString Play
阅读全文
摘要:蓝图版 导入外部图片 file://E:/UE___Projects_Test/MyProjectAAA/Plugins/WXimage.jpg 导出图图片 一般导出 .hdr 文件 导出 png 设置一些格式 C++ 版 读取外部图片 build.cs 添加 ImageWrapper 模块,使用时
阅读全文
摘要:XmlParser 简单读取 XmlParser 为引擎自带模块 XML 文件 如果XML要读取中文乱码,可将xml编码改成Unicode保存 <?xml version="1.0" encoding="UTF-8"?> <Movie Name="悬崖之上"> <Category>剧情/悬疑/动作<
阅读全文
摘要:准备条件 Json 格式 { "Players":[ { "Name": "Player1", "health": 200, "icon": "Texture2D'/Game/FourEvilDragonsHP/Textures/DragonTheUsurper/BlueHPTex.BlueHPTe
阅读全文
摘要:CoreMisc.h 原博客地址 读取 FFileHelper::LoadFileToString 读取全部内容,存到 FString FString TextPath = FPaths::ProjectDir() + TEXT("DataDrive/Dialogue.txt"); TextPath
阅读全文
摘要:Datatable 读取行数据 1. 创建结构体 继承自 FTableRowBase USTRUCT(BlueprintType) struct FSimpleStruct :public FTableRowBase { GENERATED_USTRUCT_BODY() public: UPROPE
阅读全文
摘要:基于UKismetMathLibrary DateTime 相关函数 Timespan 运算操作相关函数见尾部附录 /** Returns the date component of A */ UFUNCTION(BlueprintPure, meta=(DisplayName="GetDate")
阅读全文
摘要:基于UKismetSystemLibrary PrintString /** * Prints a string to the log, and optionally, to the screen * If Print To Log is true, it will be visible in th
阅读全文
摘要:基于UKismetSystemLibrary 获取各类名称 // Returns the actual object name. UFUNCTION(BlueprintPure, Category = "Utilities") static FString GetObjectName(const U
阅读全文
摘要:基于UKismetSystemLibrary /** Draw a debug line */ UFUNCTION(BlueprintCallable, Category="Rendering|Debug", meta=(WorldContext="WorldContextObject", Deve
阅读全文
摘要:基于UGameplayStatics Blueprint_PredictProjectilePath_ByObjectType 根据 Object Type,算出抛物线的点集合和检测结果 static bool Blueprint_PredictProjectilePath_ByObjectType
阅读全文
摘要:基于UGameplayStatics 获取运行时间 /** Returns the frame delta time in seconds, adjusted by time dilation. */ UFUNCTION(BlueprintPure, Category = "Utilities|Ti
阅读全文
摘要:切换关卡 基于 UGameplayStatics:: OpenLevel UGameplayStatics::OpenLevel(GetWorld(), TEXT("NewMap")); OpenLevelBySoftObjectPtr FSoftObjectPath NewMapPath(TEXT
阅读全文
摘要:获取 Actor TActorIterator 遍历 可以用于遍历 Actor,也可以用于遍历 Component for (TActorIterator<AStaticMeshActor> ActorIter(GetWorld()); ActorIter; ++ActorIter) { UKism
阅读全文
摘要:World.h 库里的 Trace API Trace模式 TraceSingle 单个结果 TraceMulti 多个结果 Trace 的检测依据 ByChanne ByObjectType ByProfile LineTraceSingleByChannel 由于一般不使用 World 里的Tr
阅读全文
摘要:概念 碰撞对象通道与预设 默认提供碰撞对象类型,如 WorldStatic、WorldDynamic等。允许用户自定义 默认提供碰撞预设,如 NoCollision、BloackAll、OverlapAll。允许用户自定义 碰撞响应设置 可以用来设置是否模拟物理碰撞以及触发 Overlap 事件 碰
阅读全文
摘要:概念 定时执行操作,可执行一次,或循环执行直到手动终止 定时器在全局定时器管理器(FTimerManager 类型)中管理。全局定时器管理器存在于 游戏实例 对象上以及每个 场景 中 定时器需要绑定委托或函数,作为执行体。这些函数将填充 FTimerHandle 定时器句柄 FTimerHandle
阅读全文
摘要:简述 本例以插件形式测试 使用Lib引用,打包程序运行不用再拷贝lib文件 需要 lib 文件和 .h 头文件 lib部分的代码 .h 头文件 #pragma once #ifndef __MYTEST_LIB_H__ #define __MYTEST_LIB_H__ #include <strin
阅读全文
摘要:// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "UObject/ObjectMacros.h" #include "UObject/Object.h"
阅读全文
摘要:// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "UObject/Script.h" #include "UObject/ObjectMacros.h"
阅读全文
摘要:// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "UObject/ObjectMacros.h" #include "UObject/Object.h"
阅读全文
摘要:播放声音 PlaySoundAtLocation() USoundCue* HitSound = LoadObject<USoundCue>(this, TEXT("SoundCue'/Game/Demo_Drone/Sound/explore_Cue.explore_Cue'")); if (Hi
阅读全文
摘要:Actor的生成与销毁 创建Actor实例 UClass* TSubclassOf<T> SpawnActor() UPROPERTY(EditAnywhere, Category = "init") UClass* bullet0; // 取类 UPROPERTY(EditAnywhere, Ca
阅读全文
摘要:UObject 的创建 NewObject 模板类 本例使用 UE 4.26,只剩下 NewObject 用来创建 UObject,提供两个带不同可选参数构造函数的模板类 Outer 表示这个对象的外部对象,通常可传 this 指针进去 Name 为对象名,如果没有自定义,默认生成,自带 GetNa
阅读全文
摘要:打印屏幕 默认打印屏幕 // 打印至屏幕 FString screenMessage = "(AddOnScreenDebugMessage) Hello world!"; GEngine->AddOnScreenDebugMessage(-1, 1.f, FColor::Green, screen
阅读全文
摘要:基本概念 UE4 对 UObject 对象提供垃圾回收 UE4 对原生对象不提供垃圾回收,需要手动进行清理 方式 malloc / free new / delete new与malloc的区别在于,new在分配内存完成之后会调用构造函数。 缺点 如果不及时清理,则会占用内存,或者导致内存泄漏 如果
阅读全文
摘要:启动/关闭外部exe 引擎自带 FPlatformProcess::CreateProc() FPlatformProcess::TerminateProc() windows api ShellExecute() system() virtual void Tick(float DeltaTime
阅读全文
摘要:编译方法 Visual Studio 2019 编译 默认编译 UnrealVS 快速编译 Editor 编译 一般 vs 编译完后,Editor会跟着热编译(有声音) 如果发现编译后代码没更新到Editor,可以手动点击Compile 如果编译过后,发现代码还是没更新,可以重启编辑器 脚本编译 使
阅读全文
摘要:更改setup.bat部分参数
阅读全文
摘要:error LNK2019: unresolved external symbol “” referenced in function 描述 Link错误、无法解析的外部符号 解决方法 检查.build.cs 中是否增加相关模块的引用,或者是否使用 XXX_API 宏 error C4668: “_
阅读全文
摘要:Visual Studio 2019 安装 下载 https://visualstudio.microsoft.com/zh-hans/downloads/ 安装 设置 扩大 Solution Configurations 和 Solution Platforms 下拉框的宽度 右键工具栏 > Cu
阅读全文
摘要:源码下载 git clone git clone https://github.com/20tab/UnrealEnginePython 直接下载zip https://github.com/20tab/UnrealEnginePython 编译 新建C++ UE4工程 拷贝文件夹到Plugin/U
阅读全文
摘要:概念 AsyncTask AsyncTask 系统是一套基于线程池的异步任务处理系统。每创建一个AsyncTas,都会被加入到线程池中进行执行 AsyncTask 泛指 FAsyncTask 和 FAutoDeleteAsyncTask,一般声明为友元函数,FNonAbandonableTask 派
阅读全文

浙公网安备 33010602011771号