- 博客(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中的 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安卓打aab包时,同时存在“gradle”、“arm64/gradle”两个Gradle工程的原因
解释了 UE4安卓打aab包时,同时存在“gradle”、“arm64/gradle”两个Gradle工程的原因
2024-10-29 16:43:25
910
原创 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调试手段:主动崩溃与“.pdb”解析“.dmp”文件
在UE4中,当你构建项目时,编译器会生成PDB文件。PDB文件包含了编译后的二进制可执行文件(如游戏客户端或服务器)的调试信息,包括函数、变量、类型信息以及源代码的映射关系。四、VS中看到“仅限本机进行调试”,但点击前,需要先在VS的界面中点击“手动选择PDB”(sorry我没有截到图),并选择第一步骤里找到的pdb。使用PDB文件,开发者可以在调试过程中获得更多的上下文信息,例如函数调用堆栈、变量的值和类型等。在UE4中,PDB文件是一种调试符号文件,用于在程序崩溃或调试时提供有关代码的详细信息。
2024-07-31 12:10:14
1057
原创 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
原创 虚幻引擎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 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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人