UE通过UBT来构建项目(不管是VS里的Build也好,Editor里的Compile也好,最终都会调用UBT)。UBT和UHT是UE工具链的基石,内容太多,没办法一次性分析全部,先梳理出一个大致的轮廓,有时间再慢慢补充。
UE通过UBT来构建项目(不管是VS里的Build也好,Editor里的Compile也好,最终都会调用UBT)。UBT和UHT是UE工具链的基石,内容太多,没办法一次性分析全部,先梳理出一个大致的轮廓,有时间再慢慢补充。
C++是一门支持面向对象编程(object-oriented Programming)的语言,继承和多态(Polymorphic)是其最重要的特性。
关于C++的继承和类内成员的各种内容在之前的文章中已经有了不少介绍,本篇文章主要是研究一下编译器对C++多态的一个实现方式:虚函数表。
C++标准([IOS/IEC 14882:2014])中写道:
Virtual functions support dynamic binding and object-oriented programming. A class that declares or inherits a virtual function is called a polymorphic class.
注意:C++标准并没有规定如何实现多态,所以编译器对多态的实现是Implementation-defined Behavior,意思就是不同的编译器可能对多态的实现是不一样的,在不同的平台可能会无法得到相同的实验结果。
最近项目打包时遇到一个非常奇怪的错误:
1 | // package log |

我调试了一下UE4的代码,分析了一下原因和解决过程。
UE4引擎里面定义了很多引擎中的宏和一些处理逻辑,如WITH_ENGINE/WITH_EDITOR等,它们部分是UBT通过读取*.target.cs文件中的配置来定义的,有些逻辑是通过读取*.Build.cs的配置处理的。
我读了一下UBT的代码,抽出来部分UBT中配置文件(Target.cs/Build.cs)参数与MACRO的相互定义,作为速查手册。*.Target.cs的参数可以看:UnrealBuildSystem/Targets*.Build.cs的参数可以看:UnrealBuildSystem/ModuleFiles
UE的构建系统文档:Build Tools
Tor的Bridge如果传播的范围比较广,可能隔几天就被和谐掉了,频繁地换有点麻烦(恍惚间让我想到了当年改host上Google的时光)。今天折腾了一下,自己在VPS上搭建tor的Bridge来自用。
而且也从Tor Browser里提取出tor,使其不依赖Tor Browser,可以供其他浏览器使用。
警告:部署Bridge可能会增加服务器被墙的概率。
在部分SDK的对接中,有些平台除了DLL外并没有提供导入库来供我们使用,那就只能使用代码中加载DLL的办法来调用DLL内的函数,本文来记录一下两种用法,再分析一下优劣。
因为UnrealEngine在切换关卡(OpenLevel)时会把当前关卡的所有对象全部销毁,但是常常我们需要保存某些对象到下一关卡中,今天读了一下相关的代码,本篇文章讲一下如何来实现。
其实Unreal的文档是有说明的(Travelling in Multiplayer),实现起来也并不麻烦,但是UE文档的一贯风格是资料是不详细的,中文资料更是十分匮乏(多是机翻,而且版本很老),在搜索中也没有查到相关的靠谱的东西,我自己在读代码实现的过程中就随手记了一下,就当做笔记了。