UE4 network优化
工具
https://medium.com/neobards/ue4-network-profiler-1-fa8a22372d46
这里面是总结使用UE4 Replicate系统进行优化
首先介绍一些调试命令
net.Reliable.Debug 2 查看Reliable 的RPC函数(具体看函数发起在哪 如果是客户端发起调用,那么只能在客户端查看到该命令的rpc,以下命令也是这种情况)
net.ListActorChannels 查看同步的actor
net.RPC.Debug 1 查看RPC函数调用
netprofile 切换停止/开始录制net profiler数据
1.设置Actor的更新频率,对于一些不需要频繁更新状态的actor可以将频率设置的很低,当需要执行具体联网操作时调用ForceNetUpdate进行更新,例如一扇门,只有打开关闭的时候 调用ForceNetUpdate(注意不要使用Reliable的rpc函数,如果使用的话是会无视更新频率的)
2.设置NetCull距离 注意 这里面的数值是距离的平方 也就是说默认的距离实际是15000(150m)
3.使用NetworkProfiler查看网络信息
工具的位置在引擎Engine\Binaries\DotNET 查看的数据通过netprofile命令获得位置在工程/Saved\Profiling
如果没有特殊设置的 一般默认的17777是客户端 61358是作为服务器端
4.设置Actor的Net Dormancy属性
如果设置为Initial的时候 actor不进行复制 可以通过蓝图SetNetDormancy修改该值,经过测试 设置为其他任何值都会进行复制, 同样有FlushNetDormancy进行强制刷新(应对NetUpdateFrequency比较低的情况)
5.就是参照NetSerialization.h中的说明 自己创建需要复制的struct 并进行序列化
可以手动确定哪些变量进行复制
USTRUCT(BlueprintType)
struct FTestA
{GENERATED_USTRUCT_BODY()
public:UPROPERTY(BlueprintReadWrite)int a;UPROPERTY(BlueprintReadWrite)int b;/*** @param Ar FArchive to read or write from.* @param Map PackageMap used to resolve references to UObject** @param bOutSuccess return value to signify if the serialization was succesfull (if false, an error will be logged by the calling function)** @return return true if the serialization was fully mapped. If false, the property will be considered 'dirty' and will replicate again on the next update.* This is needed for UActor* properties. If an actor's Actorchannel is not fully mapped, properties referencing it must stay dirty.* Note that UPackageMap::SerializeObject returns false if an object is unmapped. Generally, you will want to return false from your ::NetSerialize* if you make any calls to ::SerializeObject that return false.**/bool NetSerialize(FArchive& Ar, class UPackageMap* Map, bool& bOutSuccess){// Your code here!Ar << a;return false;}/*** @param DeltaParms Generic struct of input parameters for delta serialization** @return return true if the serialization was fully mapped. If false, the property will be considered 'dirty' and will replicate again on the next update.* This is needed for UActor* properties. If an actor's Actorchannel is not fully mapped, properties referencing it must stay dirty.* Note that UPackageMap::SerializeObject returns false if an object is unmapped. Generally, you will want to return false from your ::NetSerialize* if you make any calls to ::SerializeObject that return false.**/bool NetDeltaSerialize(FNetDeltaSerializeInfo& DeltaParms){// Your code here!return false;}
};template<>
struct TStructOpsTypeTraits< FTestA > : public TStructOpsTypeTraitsBase2< FTestA >
{enum{WithNetSerializer = true,WithNetDeltaSerializer = false,};
};
UE4 network优化相关推荐
- ue4渲染速度太慢_[UE4]性能优化指南(程序向)
封面来源:A Cold Stop(Mixer 制作材质.UE4渲染 ) [UE4]性能优化指南(美术向)玄冬Wong:[UE4]性能优化指南(美术向)zhuanlan.zhihu.com 内容都是处 ...
- [UE4]性能优化指南(美术向)
参考自官方文档: Performance Guidelines for Artists and Designers https://docs.unrealengine.com/en-us/Engine ...
- [UE4]性能优化指南(程序向)
零散记录 GPUProfile来统计性能消耗的时候,在editor模式下不是很准,因为编辑器的消耗也算进去了,如果要用,最好以Game模式来查看. UE4不支持640X480的分辨率,如果在这个分辨率 ...
- Ue4 UI优化文档整理理解
1.名词解释 User Widget:对应一个用户界面. Widget Tree:每一个 User Widget 都是存储成树状结构. Panel Widget:不会渲染出来,用于对 Child Wi ...
- UE4项目优化(帧数优化)相关知识
控制台命令 r.screenpercentage 0~100 0是百分之百 如果改了这个 游戏运行超级流畅说明瓶颈在GPU上 stat fps 显示帧率(Frame Per Second)(或者快捷键 ...
- UE4 项目优化经验(性能、资源管理、打包等优化)
UE4 优化(性能.资源管理.打包等优化) 一.如何查看性能指标 二.性能优化的方式 优化帧率 优化UE4项目启动速度 优化打包速度和缩小包容量 采用Jenkins进行持续集成交付 删除不用资源 三. ...
- UE4 性能优化方法(工具篇)
http://www.cnblogs.com/ghl_carmack/p/5481763.html 本文依据UE4官方文档以及官方博客等总结而来,可能不全面,后面会陆续添加.内置工具的详细说明请参考官 ...
- MATLAB提示错误使用network,优化双隐藏神经网络出现错误使用 network/subsasgnne...
nntwarn off %节点个数 inputnum=17; %输入层节点数 hiddennum1=6; %隐含1层节点数 hiddennum2=6; %隐含2层节点数 output ...
- ue4 Niagara粒子打包安卓后不显示
提问:ue4 Niagara粒子打包安卓后不显示今天用ue4中的Niagara粒子做了一个烟花的效果,但是打包到安卓手机后只能看到升上天空的粒子,看不到爆炸效果. 解答: 在打包 UE4 Niagar ...
最新文章
- 教你用ERD轻松修改系统登录密码
- “用手机就能访问卫星” 软件定义升级卫星智能
- python比前端好学吗_前端学习到底难不难?
- reduce_sum() got an unexpected keyword argument 'keep_dims'
- Delphi 中自定义异常及异常处理的一般方法
- hihocoder1260,1261 (HASH经典题)
- 在Java中对Singleton类进行双重检查锁定
- pthread 简要使用指南
- java模拟记事本的一些功能
- Android 系统性能优化(24)--布局优化
- mysql5.7.26修改账号密码_修改mysql5.7的用户密码
- 论文投稿指南——计算机领域核心期刊
- 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档
- 2019中原银行java实习面试
- html td里面元素的获取
- Ameba 博客 词汇语法句型 20141101
- Orz 终于有了自己的博客地址
- POS基本算法详细解析
- 闲鱼链接搭建+完整版源码带后台
- CF #80 Cthulhu