自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 如何使用VS中的Android Game Development Extension (AGDE) 来查看安卓 Logcat 日志

假如打开时遇到如下报错,则说明第一步骤中的JDK 没有安装好,设置好JDK的环境变量(例如 setx JAVA_HOME C:\android_build_tools\jdk-11.0.17 )重启VS,重新打开,就可以发现能打开了。一、首先按照该指引 中的 第1、2步骤,安装一下 AGDE ,AGDE 的安装包可以在官网上找到。在这其中的过滤框里填写过滤的内容,就可以查看安卓手机中的事实日志了。在执行第二步骤前,记得让你的PC连接安卓手机,并记得打开开发者模式。

2025-03-26 16:37:49 371

原创 UE4原生的增量Cook原理

UE4增量Cook

2025-01-16 11:05:21 296

原创 源码理解 UE4中的 FCookStatsManager::FAutoRegisterCallback RegisterCookStats

首先,RegisterCookStats是一个全局(非静态)变量,它的类型是 FCookStatsManager::FAutoRegisterCallback ,它调用的初始化器是 ( []()... ) ,也就是说,传入了一个lambda函数,作为初始化器的参数。

2024-12-31 15:22:10 619

原创 形象地理解UE4中的数据结构 TLinkedListBase

大家都熟知链表,但不一定能快速看懂UE4中的数据结构。TLinkedListBase表示“链接”中的一个结点,有三个成员:一、ElementType Element;表示具体的业务,例如int链条中的一个整数。二、NextLink 表示 “下一个Node”,这是一个指向“下一个Node” 的指针,也非常好理解。三、PrevLink 表示 “前一个Node” 的 “NextLink”,这是一个指针,它指向的是 “前一个Node” 的 “NextLink” 成员。

2024-12-31 10:35:43 1088

原创 UE4 编译报错 “Error LNK2019 : 无法解析的外部符号” 一种可能的原因

CookBegin_AssetPacker_GenPakConfig_TimeSec@DetailedCookStatsExtern@@2NA),函数 "public: void __cdecl UAssetPackerEditorManager::GeneratePakConfig(void)" (?这个变量它是 class 中的 static double ,并且没有为它做初始化。在UE4中,需要始终为类静态成员做初始化。有的博客说C++ 类静态成员会有默认初始化(为0),但对于UE4来说不是合适的。

2024-12-28 10:12:35 347

原创 Rider显示UE4引擎、项目 “load failed” 的解决方法

打开rider遇到下图的问题。清理了Intermediate后,并且 setup、generate project files 后,依然有问题。对项目文件 MyProject.uproject 右键switch引擎时发现,选择的引擎并不正确。因此需要switch!

2024-12-20 16:59:29 321

原创 XCode Build时遇到 .entitlements could not be opened 的问题

在构建成功的XCode工程上,手动打开XCode并Build,遇到以下问题:打开这个位置发现,文件确实不存在,只存在一个 {项目}Client.entitlements 的文件。因此,联想到,应该是当前的scheme选择地不对,应该构建出 {项目名}Client,而非构建出 {项目名}。

2024-11-21 17:03:22 1453

原创 UE4 iOS Package的过程与XCode工程中没有游戏Content的原因

我观察XCode工程时,没有看到包含游戏Content或Content的Pak,为此研究代码。

2024-11-20 21:04:58 1093 1

原创 UE4 Cook 从UAT传递参数给UE4Editor

如果我想要给它添加一个开关 -DisableCookAssert,并传递给UE4Editor(cpp)中,应该怎么添加?怎么传递呢?

2024-11-12 14:40:04 1060

原创 UE4安卓Gradle工程中的libUE4.so的生成原理

探究了UE4安卓Gradle工程中的libUE4.so的生成原理

2024-11-02 17:05:27 1705

原创 UE4安卓打aab包时,同时存在“gradle”、“arm64/gradle”两个Gradle工程的原因

解释了 UE4安卓打aab包时,同时存在“gradle”、“arm64/gradle”两个Gradle工程的原因

2024-10-29 16:43:25 910

原创 谷歌新安装包文件形式 .aab 在UE4中的打包原理

本文学习了aab的基本概念以及UE4中产生aab的构建原理。

2024-10-17 16:39:27 1288

原创 UE4中 -skipbuild -nocompile 有什么区别

在项目开发中,我看到了在调用 Engine\\Build\\BatchFiles\\RunUAT.bat 相关的命令行中,有 -skipbuild、 -nocompile 两个很像的参数,于是想探究一下它们的区别与含义。

2024-09-26 16:23:04 994

原创 UE4 使用AndroidGameDevelopmentExtension(AGDE)对安卓客户端做“断点调试”与“代码热更”

主要介绍了如何通过AndroidGameDevelopmentExtension工具、Visual Studio 2022来进行安卓包调试。

2024-08-30 17:51:59 1808

原创 打开plist中的MetalCaptureEnabled开关并重签名IPA

【代码】打开plist中的MetalCaptureEnabled开关并重签名IPA。

2024-08-27 20:06:36 200

原创 UE4 BuildCookRun中的Archive的含义

在UE4中,Archive、Cook、Stage、Package、Build的次序是怎么样的?整体打包过程如下: Build -> Cook-> Stage -> Package -> Archive。其中,Archive 的含义是从Staged目录中拷贝文件到一个额外的目录即Archive目录。被称为“归档”。

2024-08-26 21:09:24 655

原创 在Mac上打开UE4Editor

使用如下命令在Mac机器上编译Mac的UE4Editor:其中 -buildscw 表示编译ShaderCompileWorker。编译后,很可能 Binaries/Mac/UE4Editor.app 是打不开的,因为各种插件等的原因。在Intermediate中找到XCode工程,打开XCode工程。将 Generate Info.plist File 开关打开:`Info.plist` 文件对于应用程序的运行至关重要,因为它告诉系统如何处理和展示应用程序。

2024-08-26 11:23:14 1146

原创 IDB的安装与使用

众所周知,ADB是安卓命令行调试工具。Facebook开发了一个给iPhone使用的类似工具,叫做IDB。下载附件(见我本文绑定的资源)到一个合理的路径下,并运行其中的 registry.bat。

2024-08-24 11:52:13 1284

原创 当外接硬盘接入到macOS上,只读不可写时,应当格式化

APFS(Apple File System)是苹果公司开发的一种现代文件系统格式,用于macOS、iOS、watchOS和tvOS等操作系统中。APFS文件系统支持文件名长达255个字符,支持大容量的硬盘和大文件,最大支持的文件大小为8EB(1EB=1024PB),最大支持的分区大小为9ZB(1ZB=1024EB)。当windows磁盘格式例如 NTFS 的硬盘接入到macOS上时,会发现无法新建文件夹,无法删除、重命名。,然后对磁盘进行格式化(右上角的“抹掉”按钮),选择APFS。

2024-08-24 09:40:00 738

原创 UE4中的 USE_ANDROID_JNI 宏

在引擎代码中看到上面的宏定义,其中USE_ANDROID_JNI表示的是是否使用安卓JNI。而上一篇文章介绍了为什么在打包安卓时,会包含这个文件。

2024-08-23 16:36:01 852

原创 UE4编安卓时Core模块为何只include Android文件夹?

Core模块是整个引擎中最核心的模块。几乎UE4中的每个其他模块都导入Core。

2024-08-22 20:03:47 886

原创 UE4安卓编译 UBT fails with “ERROR: GetBuildPlatform: No BuildPlatform found for Android” 的解决方案

对项目再次执行 GenerateProjectFiles,重新打开Rider,就可以看到上图中的Platform中的“Android”平台了。此时即使重启电脑,也看不到下面的Platform中的“Android”平台。在网上或通过其它渠道下载你的工程所需要的SDK、JDK。安装的脚本如下,其中设置环境变量是关键。

2024-08-21 16:48:13 256

原创 UE4 基于替换Exe方式的代码热更

在项目开发的版本迭代中,在PC包中,通过exe替换的方式 ,可以偷梁换柱,快速验证自己的代码。

2024-08-02 17:02:48 750

原创 UE4 如何获取Build.version版本号

接下来我们寻找Response文件。

2024-07-31 16:39:42 1280

原创 UE4调试手段:主动崩溃与“.pdb”解析“.dmp”文件

在UE4中,当你构建项目时,编译器会生成PDB文件。PDB文件包含了编译后的二进制可执行文件(如游戏客户端或服务器)的调试信息,包括函数、变量、类型信息以及源代码的映射关系。四、VS中看到“仅限本机进行调试”,但点击前,需要先在VS的界面中点击“手动选择PDB”(sorry我没有截到图),并选择第一步骤里找到的pdb。使用PDB文件,开发者可以在调试过程中获得更多的上下文信息,例如函数调用堆栈、变量的值和类型等。在UE4中,PDB文件是一种调试符号文件,用于在程序崩溃或调试时提供有关代码的详细信息。

2024-07-31 12:10:14 1057

原创 UE4游戏内容的打包(Pak)与加载

UE4游戏内容的打包(Pak)与加载

2024-07-31 11:25:15 6929

原创 UE4 Rider错误处理 Error: Project is not specified

解决方法:在Project栏中,继续找到它的正确的值,在上图中可以找到 Programs\AutomationToolLauncher 这个C#工程,才是正确的值。当看到Error: Project is not specified报错,并且看到调试器中存在红色叉叉时,应该如何处理?这是因为 “Project” 栏目中的原先的值失效了。

2024-07-31 11:16:32 369

原创 UE4 UnrealPak加密功能(配置AES encrypt key)

本文的重点在于如何使用UnrealPak的加密功能,以及相关的UE4源代码学习。。

2024-07-27 18:31:57 2598

原创 UE4 Ini配置文件的层级

UE4采用“Ini层级”的概念,让引擎、项目具有默认的配置值、逐项目的配置值、逐实际运行的实例的配置值(Saved下)、甚至是和本地环境相关的配置值。本文还找到了相关代码与运行结果进行学习。

2024-07-27 15:30:42 1446

原创 UE4Editor.exe运行与调试 “-run=XX” 命令行

EnginePath%\Binaries\Win64\UE4Editor-Cmd.exe %ClientPath%\%ProjectName%.uproject -run=HotPatcher {其它配置}就如同 -run=cook 对应下面入口是一样的,UCommandlet类及其子类的重要方法是 Main()。在Main这里下断点,就可以调试其逻辑。它意味着命令行,“-run=” 后面接的内容是命令行,

2024-07-25 20:57:16 745

原创 UE4调试UE4Editor-Cmd.exe

EnginePath%\Binaries\Win64\UE4Editor-Cmd.exe %ClientPath%\%ProjectName%.uproject -run=HotPatcher {其它参数}在调试器中,下图【1】处,选择工程,然后在【2】处,修改为上面的命令。当然,前面的UE4Editor-Cmd.exe不用写在Program arguments处,因为它其实在图2处配置了,鼠标悬停可见其值。然后,断点在你想要调试的地方,就可以Debug了。

2024-07-25 20:42:50 729

原创 UE4如何直接调试Game

某些功能在编辑器里不好调试,例如Pak,就需要直接调试 Game,做法是选择 Game,不要选择Client,加断点,然后点击 Debug 就好了。

2024-07-24 16:06:19 366

原创 UE4如何调试BuildCookRun

UAT是UnrealAutomationTool,最重要的一个作用就是BuildCookRun,也就是编译、烘焙、运行测试一条龙。

2024-07-24 15:49:02 1457

原创 UBT如何编译UE4工程代码

绘制了一张 compile 和 link 的过程调用关系图。

2024-07-19 13:11:02 308

原创 虚幻引擎UE4背包系统(如何制作可拖动(Drag and Drop)的背包(Scrollbox))

本教程适合初学者(学习经历已有30天的UE4初学者)。最终效果由于隐私保护,不想截实际的效果图,下面给出了示意图,左边是背包A,右边是背包B,将其中的子项目从左侧拖往右侧的背包,然后在插入位置放置。第一步:制作一个user widget(在内容浏览器中右键-ui widget-user widget),命名为subwidget_singleitem,这个用作单个物

2017-07-08 10:55:30 12618 9

原创 Unreal Engine 4 Radiant UI 入门教程(二)

本教程介绍如何制作UE4的Radiant HUD

2017-07-08 09:30:18 807

原创 Unreal Engine 4 Radiant UI 入门教程(一)

本篇教程介绍UE4的Radiant UI插件,这是一个能够将HTML技术融入到游戏场景中的插件。相关的学习资源:https://forums.unrealengine.com/showthread.php?12097-PLUGIN-RadiantUI-SDK-UIs-HUDs-Interactive-WebViews-HTML5-Javascript-CSS https:/

2017-07-05 14:35:40 1389

原创 memset和指针new一起使用时请小心

首先,我们知道,memset(数组名如A,0,sizeof(A))和memset(数组名如A,-1,sizeof(A))分别能够将整个数组A初始化为0和-1(前者0,后者-1)。利用new的方法获得指定长度的动态分配内存的数组,此时memset不适用,那是因为sizeof(A)不是数组尺寸,而仅仅是该元素的size如int 4;#includeusing namespace std;

2017-03-10 22:42:57 5076 1

原创 人工智能数据集文本处理Onehot/TF/TFIDF矩阵的生成

人工智能数据集文本处理,Onehot/TF/TFIDF矩阵的生成。理论知识不做介绍了,样例的文本放在了文章的末尾处,请各位先看一看样例文本,其中第一个数是文本条目id,接着是情感标签(网友们的评论),接着是新闻文本中还有的重要词汇。求出该文本的Onehot矩阵,TF矩阵,TFIDF矩阵。以及将Onehot矩阵存成三元表。代码中AplusB函数表示将该样例文本的前623行所对应的onehot矩阵

2016-09-28 07:57:54 29309

“IDB 解压可用的程序 由Facebook开发”

“IDB 解压可用的程序 由Facebook开发”

2024-08-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除