当前位置: 首页 > news >正文

建立网站条件网站开发规范文档

建立网站条件,网站开发规范文档,wordpress插件video playe,成都市装修公司前十强本文参考https://zhuanlan.zhihu.com/p/640723352 准备工作 先准备一个勾选了复制的Actor,然后在游戏开始时Spawn这个Actor 源码过程详解 发送属性同步 在NetDriver的TickFlush中发送属性同步的数据 1、ServerReplicateActors_BuildConsiderList 去找到所有需…

本文参考https://zhuanlan.zhihu.com/p/640723352

准备工作

先准备一个勾选了复制的Actor,然后在游戏开始时Spawn这个Actor
在这里插入图片描述
在这里插入图片描述

源码过程详解

发送属性同步

在NetDriver的TickFlush中发送属性同步的数据
1、ServerReplicateActors_BuildConsiderList 去找到所有需要属性同步的Actor,并根据一些规则过滤掉一部分
2、ServerReplicateActors_PrioritizeActors 按照优先级对Actor进行排序,不可靠的RPC也会被添加到需要发送的Actor数组末尾
3、ServerReplicateActors_ProcessPrioritizedActors 遍历每个需要发送的Actor
这里就可以找到我们的Actor
在这里插入图片描述
因为是第一次属性同步的数据,所以这个Actor还没有Channel,就会走到这里的创建Channel的逻辑
Channel就是通道,每个网络复制的Actor都有一个,服务端通过Channel将属性同步的数据发送到客户端
在这里插入图片描述
然后走到Channel->ReplicateActor()去执行这个通道的属性同步的操作
在这里插入图片描述
第一次属性同步会走到PackageMapClient类的SerializeNewActor,这里的Connection就是客户端连接。
PackageMap每个Server和Client都会有一个,该对象负责Actor和NetworkGUID的双向映射,以及序列化一个Object。
在这里插入图片描述
然后走到SerializeObject
在这里插入图片描述
调用InternalWriteObject将NetGUID写入到Bunch中,如果有PathName也会一起写入到Bunch中
在这里插入图片描述
NetGUID是一个结构体,是网络复制Actor的唯一标识符,用于复制时判断是否为相同的Actor,如果有PathName就根据PathName判断,没有PathName就根据Value判断,PathName就是Actor的路径 + 编号
在这里插入图片描述
在这里插入图片描述
Archetype:Actor的CDO信息
ActorLevel:Actor所属关卡,同步接受时是根据Level来找Actor的
Location、Scale、Velocity、Rotation这几个Actor属性
在这里插入图片描述
无论在服务器还是客户端,CDO的路径是固定的,只和资源路径有关,与World无关。
比如在Game目录下创建了一个蓝图类,那么它的CDO路径为/Game/TestActor.Default__TestActor_C
如果是C++类,那路径更加毫无疑问是一致的。
我们序列化CDO,只要序列化其路径即可,而且UE把所有UObject的网络同步都交给UPackageMapClient统一管理,CDO也有NetworkGUID,只有第一次同步时需要同步路径,后面都同步NetworkGUID,我们先都考虑第一次同步情况。
具体逻辑通过ExportNetGUID函数实现,它会写入<NetworGUID, path>对应关系,客户端收到后能在本地也建立起这个关系。如果Object有Outer,也要对Outer执行同样操作,把Outer关系也发送给客户端。
通过ExportNetGUID生产的序列化数据后续会被写入bunch前部,相对于把Object和GUID的映射先告诉客户端,客户端在处理后续Bunch时碰到对应NetworkGUID,就知道是哪个Object了。

匿名函数ConditionallySerializeQuantizedVector将Location、Rotation等属性序列化到Bunch中
在这里插入图片描述
在这里插入图片描述
然后去发送属性同步Packet
在这里插入图片描述

接收属性同步

堆栈
在这里插入图片描述
1、是Actor的第一次属性同步,所以接收时客户端还没有这个Actor
也是这六个属性
在这里插入图片描述
SerializeObject去序列化Actor数据到Archetype
在这里插入图片描述
读取到ActorLevel、Location、Rotation等信息
在这里插入图片描述
在这里插入图片描述
如果Actor为空,Archetype(CDO)不为空,就去生成Actor,并附带位置、旋转、所在关卡等信息
在这里插入图片描述
如果Actor生成成功再去添加速度、缩放属性
在这里插入图片描述
去客户端注册这个Actor,也就是去ObjectLookup数组中添加这个Actor,下一次再有属性同步数据时就可以找到这个Actor了
在这里插入图片描述
如果是新生成的Actor执行PostNetInit(),去执行Actor的BeginPlay
在这里插入图片描述
在这里插入图片描述
至此一个Actor的第一次属性复制的流程结束

http://www.yayakq.cn/news/547031/

相关文章:

  • 如何自己学做网站茂名市住房和城乡建设局网站
  • 金属东莞网站建设技术支持丰台网站建设多少钱
  • 自己做的网站怎么发布wordpress 咨询主题
  • 成都网络推广哪家好河池网站seo
  • 深圳单位网站建设服务公司网络教育
  • python网站开发流程图建一个下载网站要什么cms系统
  • 做网站市场价格多少惠州专业网站制作公司
  • 河北网站备案查询系统沈阳人流费用
  • 做低首付的汽车网站有哪些举例说明网络营销的方法有哪些
  • 西海岸新区城市建设局网站建设网站的规划书
  • 做网编去网站还是工作室好有哪些可以免费推广的平台
  • 地方门户网站如何盈利《网站开发实训》实验报告
  • 网站开发中 整体框架的架构怎样在微信公众号里做微网站
  • 建立一个网站要什么条件做网站网上商城多少钱
  • 微网站建设及微信推广方案天津模板做网站
  • 佛山网站建设多少钱博客社区类网站模板
  • 做网站还是小程序建设工商联网站的意义
  • 企业网站排名怎么优化检察院网站建设方案
  • 大连网站建设仟亿做投标的在什么网站找信息
  • 精英学校老师给学生做的网站展示型网站功能
  • 湛江专业自助建站详细解读移动网站不备案吗
  • 做个人网站怎么做高端品牌企业管理系统
  • 凡科做网站wordpress mysql优化
  • 外贸网站要怎么做软件工程排名
  • 在建设银行网站上买卖贵金属宁波江北网站建设
  • 越南网站建设文案网站编辑怎么做
  • 北京公司网站建站iis做的网站提示500
  • 简易制作网站上海建设网站制
  • seo网站推广企业珠海网站建设黄荣
  • 网站建设项目环境影响评价目录网站制作基本规则