2024年03月本页总览03月03日 新增UDynamicScriptStruct,修复动态UStruct编辑器热重载会丢失序列化数据。 修复GeneratorModules获取完整插件列表,使用Plugins.ReadProjectPlugins获取出来的应该只是*.uplugin,替换成扫描*.build.cs。 删除TReflectionClassBuilder,使用if constexpr将功能都移植到TBindingClassBuilder中。 03月04日 修复代码分析Attribute,之前只能识别到[UStruct]此类仅有Attribute自身,不能正确识别[UStruct, BlueprintType]此类具有额外Attribute,同时格式化JSON,提高可读性。 03月05日 支持动态UInterface,整理Dynamic代码。 03月06日 支持动态UClass添加UInterface。 03月07日 修复UClass和UStruct热重载之后,老的动态类会错误生成C#代码。给老的动态类命名添加上特定的"DYNAMIC_REINSTANCE"前缀,并在生成流程中过滤掉。 03月08日 将代码扫描结果合并到单个JSON文件中,减少IO操作。 03月14日 修复设置Bit-field属性。 03月15日 获取ModuleRelativePath,完善生成代码文件路径,和C++保持一致。 03月16日 将keyword同名属性名或函数名前缀从@改为__;动态类文件命名去掉A或者F前缀,与生成代码文件保持一致。 优化弱引用情况下性能,主要是调整数据结构,裁剪不必要的数据。 03月18日 缓存StaticClass调用结果,主要用于优化静态函数调用性能。 03月19日 新增SourceGenerator和Fody插件,减少动态类编写重复代码。 03月21日 修复编辑器下热编译新增动态类失败。 03月22日 新增FFunctionParamBufferAllocator类,优化压入堆栈的同一个函数对象内存申请策略,修复同一个函数递归调用时使同一块内存被覆写导致的crash。 03月23日 新增EmptyBufferAllocator,PoolBufferAllocator和PersistentBufferAllocator,重新拆分不同函数调用情况,并且使用不同的BufferAllocator。 03月27日 支持覆盖RPC函数。 03月28日 重构自动生成代码路径逻辑。