• 2025-01-05UE4.27, 揣摩源码, 网络同步 (二) 同步
    3. 同步指的是UE里服务器对客户端的单向数据同步4. Actor同步4.1. 堆栈调用 UNetDriver::TickFlush//作为服务端的时候将调用该函数UNetDriver::ServerReplicateActorsServerReplicateActors_PrepConnections
  • 2025-01-05UE4.27, 揣摩源码, 网络同步 (一) 初始化,握手,登录
    0. 计算机网络常识回顾0.1.四大层级,Socket抽象层应用层->传输层->网络层->网络接口层实际应用中,当我们使用socket技术后,关心的抽象是这样的红绿分别代表服务器和客户端应用层<-Socket抽象层->传输层<->...<->传输层<-Socket
  • 2024-12-29UE4.27, 揣摩源码, 序列化 (四) 应用
    4.runtime-UObject正反序列化4.1UObject序列化//toolload FAssetToolsModule&AssetToolsModule=FModuleManager::Get().LoadModuleChecked<FAssetToolsModule>("AssetTools"); //pathsolve FStringAssetName,Pack
  • 2024-12-29UE4.27, 揣摩源码, 序列化 (三) FLinkerLoad, FLinkerSave
    3.  FLinkerLoad,FLinkerSave分别是UObject的反序列化和序列化的内核3.0.UPackage与UObjectUObject因为涉及与其他UObject的复杂引用关系,如果我们客制化地单独正反序列化每一个UObject,我们会在反序列化的时候惊觉这是繁琐而不可能的。为了满足UObject
  • 2024-12-26UE4.27, 揣摩源码, 序列化 (一) FArrayReader, FArrayWriter
    1.从ArrayReader.h和ArrayWriter.h开始1.1.SVO为了减少误解,介绍一下SVO这里的read和write的主词都是array,宾语都是memory所以前者是从内存读出array,后者是将array写入内存1.2.关键继承关系FArrayReader,FArrayWriterc
  • 2024-12-26UE4.27, 揣摩源码, 小展 "宏" 图
    ue宏乃催眠神器,睡不着就点进来看看罢1. CORE_API见PCH_Core.h有(PCH=Pre-CompiledHeader)#defineCORE_APIDLLEXPORT事实上,有许多名为XXXXXX_API的宏被定义为DLLEXPORT或DLLIMPORT好了,现在一个问题变成俩了 2. DLLEXPORT, DLLIMPORT如果你的分词功能和我一样被这个大
  • 2024-03-26UE4.27, 代码实践, 资源加载 FSoftClassPath / FSoftObjectPath
    //以下的FSoftClassPath/FSoftObjectPath都公开在Editor里设定 //iteminTArray<FSoftClassPath>FSoftClassPathtemp=FSoftClassPath_UsedInBluePrint_BuildFunc(item);UClass*LoadedClass=temp.TryLoadClass<AActor>();FSoftClassPathFSoftClassPath_UsedInBlu
  • 2023-11-14UE4.27 bug汇总
    编译时errorC4668:没有将“_WIN32_WINNT_WIN10_TH2”定义为预处理器宏,用“0”替换“#if/#elif”一般为Windows中的宏和UE4冲突所致,需要用如下头文件包裹冲突的头文件:#include"Windows/AllowWindowsPlatformTypes.h"#include"Windows/PreWindowsApi.h"#include"冲突的
  • 2023-08-28UE4.27, Debug issues, "变量已被优化掉,因而不可用"
    调试时添加监控后,变量未被成功监控,显示"变量已被优化掉,因而不可用" 所使用的解决办法从解决方案配置的下拉菜单中选择DebugGameEditor  感谢阅读,敬请斧正
  • 2023-08-27UE4.27, Packaging failed, "is found in memory and is an export but does not have all load flags
    打包时发生如下错误"isfoundinmemoryandisanexportbutdoesnothaveallloadflags"通过查阅论坛,问题原因出在,某类的构造函数里包含xxx->SetChildActorClass(ActualOne) 整理到的解决办法并未完全验证1,愿意手动设定ChildActorComponent的话,将原代码改为xxx->SetC