摘要:在Unlua中可使用以下宏来静态导出反射体系外的类、成员函数、成员变量、全局函数和枚举 /** * Export a class */ #define EXPORT_UNTYPED_CLASS(Name, bIsReflected, Lib) \ struct FExported##Name##He
阅读全文
摘要:UnLua是Tencent针对UE4的脚本解决方案,其目标是使用lua脚本来代替蓝图来编写业务逻辑,提升开发效率和降低维护成本。目前已在github上开源。 主要功能特性 1. 可在lua中通过UE4反射系统零胶水代码访问UCLASS, UPROPERTY, UFUNCTION, USTRUCT,
阅读全文
摘要:JNI(Java Native Interface,Java本地接口),是用于实现Java与Native代码相互调用的编程框架。 Native调用Java void ObjFunc_int_voidret(JNIEnv *env, jobject obj, const char *funcname,
阅读全文
摘要:HLSL(High-Level Shading Language,高级着色语言) 是由微软开发的一种着色器语言,D3D9及以上版本使用其作为着色语言(注:D3D8的shader使用是类似于汇编的语言来编写),拥有如下特点: 1. 基于C语言的语法(如:大小写敏感,每条语句必须以分号结尾),是一门面向
阅读全文
摘要:UE4命令行参数是大小写不敏感的 FCommandLine::Get()可获取命令行 FParse::Param用来解析形如-xx的参数 FParse::Value用来解析形如key=value或-key=value的参数 在windows下上还可以定义环境变量UE-CmdLineArgs来传入额外
阅读全文
摘要:FMallocBinned2是虚幻引擎实现的第二代装箱内存分配器,其重要的配置参数及成员变量如下: #define BINNED2_MAX_CACHED_OS_FREES (64) #if PLATFORM_64BITS #define BINNED2_MAX_CACHED_OS_FREES_BYT
阅读全文
摘要:为了提升游戏的运行帧率,减少卡顿,UE4中使用了大量的线程来提升游戏的并发程度,来释放GamePlay游戏线程的压力。 具体包括: ① 将渲染的应用程序阶段的工作放在RenderThread中 ② 将渲染命令提交放在RHIThread中 ③ 将Actor及ActorComponent的Tick、物理
阅读全文
摘要:在编译之前,通过UHT扫描头文件中特定的宏来生成相关代码(*.generated.h / *.gen.cpp),然后再一起编译链接进游戏,来生成类型系统、扩展语言修饰符和收集元数据UMetaData 类型系统在对象之外,提供了一个静态信息载体,不仅描述了对象自身,还能构建起来对象之间的派生从属关系
阅读全文
摘要:Profiler工具的代码详见:UnrealEngine\Engine\Source\Developer\Profiler UE4提供了2种使用Profiler工具的方式: ① UE4编辑器中的Session Frontend面板,见菜单“Window” -- “Developer Tools” -
阅读全文
摘要:在控制台输入stat时,会在日志中打印出一些帮助信息: [2021.03.27-02.35.26:090][ 23]Empty stat command! [2021.03.27-02.35.26:091][ 23]Here is the brief list of stats console co
阅读全文
摘要:UE4支持多种内存分配器: /** Which allocator is being used */ enum EMemoryAllocatorToUse { Ansi, // Default C allocator Stomp, // Allocator to check for memory s
阅读全文
摘要:类型 打印 输出 nil print(nil) nil 布尔 print(true) true number print(5) 5 number print(3.14) 3.14 字符串 print("Hello World!") Hello World! light c function prin
阅读全文
摘要:GLSL(wiki chs)是OpenGL(OpenGL ES、WebGL)的着色器语言,拥有如下特点: 1. 基于C语言的语法(如:大小写敏感,每条语句必须以分号结尾),是一门面向过程的强类型语言(type sensitive language) 2. 预处理中没有#include包含文件指令 3
阅读全文
摘要:迭代器(iterator)是一种可以遍历一个集合中所有元素的代码结构。需要在连续的调用之间保存一些状态,这样才能知道当前迭代器所处的位置及如何从当前位置步进到下一个位置。 迭代器这个名字多少有点误导性,因为迭代器并没有进行实际的迭代:真正的迭代是循环体完成的,迭代器只不过为每次的迭代提供连续的值。叫
阅读全文
摘要:Lua数据类型 类型 大类型 类型细分 _tt(类型) nil #define LUA_TNIL 0 空 0 布尔 #define LUA_TBOOLEAN 1 int 1 number #define LUA_TNUMBER 3 double 3 int 19(0x13) 字符串 #define
阅读全文
摘要:ListLoadedPackages // 打印被加载的包 每个包对应一个uasset或umap文件 List of all loaded packages Name,Type,LoadTime /ACLPlugin/ACLAnimCurveCompressionSettings,AnimCurve
阅读全文
摘要:Lua通过一个“虚拟栈”(Lua State)与C/C++程序进行数据交互。 当在Lua里面操作这个栈的时候,每次操作的都是栈的顶部。而Lua的C API则有更多的控制权,可非常灵活地操纵这个栈的任意位置。 c/c++调用lua实际上是:c/c++获取全局表中的lua变量或函数,然后把数据放入栈中,
阅读全文
摘要:UObject的Flags /** * Flags describing an object instance */ enum EObjectFlags { // Do not add new flags unless they truly belong here. There are altern
阅读全文
摘要:TUniquePtr(唯一指针,对应c++ 11标准库中unique_ptr:用来取代C++98中的auto_ptr)是“其所指向的对象及其资源”的唯一拥有者,实现了独占式拥有(exclusive ownership)的概念。 可以绑定单个对象T或对象数组T[],在其内部仅有一个成员变量为T* Pt
阅读全文
摘要:原文链接:Lua 5.3 参考手册(云风) 官方英文链接:Lua 5.3 Reference Manual Lua 5.3 参考手册 作者 Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes 译者 云风 Lua.org
阅读全文