UE4 内容示例网络同步Learn
一,
1.1 Actor的复制 Actor中的Replicates ,为true时,服务器会把该Actor同步,显示在客户端中。
1.2 Switch Has Authority判断是客户端还是服务器。
1.3 1.4变量复制:
一般的单机项目相当于服务器端,总控版本。
变量的replication选项中replicated会把该变量同步到客户端,第一个鬼魂没有选择,所以在客户端看到的Health值没更新,但是更新的函数也执行了,只是是在服务器端执行的没有同步到客户端,所以一般的单机项目相当于服务器端,当player的数量为1时,也相当于服务器端。当选择replication选项中的repnotify时,会生成一个OnRep_VariableName的函数,这个值改变时会在服务器和所有客户端调用该函数。
1.5 函数复制
Replicated Function Calls (复制的函数调用)可被设置为 Reliable (可靠)或 Unreliable (不可靠)。 可靠的调用一定会发生,不可靠的调用在通讯频繁的时候可能会丢失。 大多数处理装饰视觉的复制函数都不可靠,以防止网络饱和。
有3种主要类型的复制函数: Multicast (多路广播),Run On Server (服务器), 以及Run On owing Client (客户端),还有Not Replicated,Run On Server 在服务器执行的函数由客户端调用,然后在服务器执行。Run On owing Client
由服务器调用,在特定客户端执行。Multicast在服务器调用然后自动转发到所有客户端。
二,网络关联性
为能通过蓝图创建网络连接正确的游戏,重要的一点是同时了解 Network Relevancy (网络关联性)的概念。 简单来说,让客户端的机器总是接受每个Actor的网络数据是不合理的。 从网络角度来说,在大地图一端的玩家不必了解在地图另一端发生的每件事。 这样的话,我们可以说在给定时间内,只有一部分Actors与玩家"相关"。
Net Cull Distance Squard:网络同步的距离的平方,当客户端在该距离内时,该客户端与该同步的Actor有关,该Actor会同步到该客户端。
开箱子示例最佳做法:设置合适的同步范围,设置开箱子函数为Multicast,当客户端在范围内就能看到效果,设置一个变量为RepNotify,用来表示箱子的状态,OnRep函数中执行改变实际箱子的操作,当客户端在范围外时箱子打开了,这时候看不到效果,当客户端走进范围后,同步到该变量,随后自动调用OnRep函数,从而改变箱子的状态。
UE4 内容示例网络同步Learn的更多相关文章
- UE4网络同步属性笔记
GameMode只有服务端有,适合写游戏逻辑.PlayerController每个客户端拥有一个,并拥有主控权.GameState在服务端同步到全端. CLIENT生成的Actor对其有Authori ...
- ue4网络同步概念笔记
网络同步主要的概念是 复制. 不是以前的S,C逻辑分离. 是S复制到C通过 Switch Has Authority 将S与C的逻辑在程序内分离. 所属权:每个连接到S的C都有自己的 控制权.从 ...
- CDN(内容分发网络)技术原理
1. 前言 Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加, 用户数量也在不断增加,受Web服务器的负荷和传输距离 ...
- CDN 内容分发网络技术
1.前言 Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加,用户数量也在不断增加,受Web服务器的负荷和传输距离等因 ...
- 深度剖析:CDN内容分发网络技术原理--转载
1.前言 Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加,用户数量也在不断增加,受Web服务器的负荷和传输距离等因 ...
- [转]CDN(内容分发网络)技术原理
1. 前言 Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加, 用户数量也在不断增加,受Web服务器的负荷和传输距离 ...
- CDN内容分发网络
CDN的全称是Content Delivery Network,即内容分发网络,其设计思想是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳定. CDN系统是在网络 ...
- http 协议_DNS_域名解析 DNS 服务器_内容分发网络 CDN_缓存机制_HTML5 浏览器存储技术_cookie_sessionStorage_localStorage
TCP/IP 协议族 是按层次去划分的 应用层 决定了向用户提供应用服务时通信的活动. FTP 协议(文件传输协议)DNS(域名协议)HTTP(超文本传输协议) 传输层 提供处于网络连接中 ...
- Unity - Photon PUN 本地与网络同步的逻辑分离 (二)
上篇实现了事件系统的设计,这篇就来结合发送RPC消息 并且不用标记 [PunRPC] 先来看下上编的代码 GameEnvent.cs private static Dictionary<Comm ...
随机推荐
- ogg12-ERROR OGG-01031 file D:\OGG\dirdat\ed000000 is not in any allowed output directories
配置ogg时出现这个错误: 2018-01-04 14:22:58 ERROR OGG-01031 Oracle GoldenGate Capture for Oracle, P147148.prm: ...
- 访问vm中centos的web站点
vm网络连接设置成NAT 需要把centos设置成静态IP 再不行,记得把centos的防火墙先关闭
- Kafka的基本概念与安装指南(单机+集群同步)
最近在搞spark streaming,很自然的前端对接的就是kafka.不过在kafka的使用中还是遇到一些问题,比如mirrormaker莫名其妙的丢失数据[原因稍后再说],消费数据offset错 ...
- Matplotlib初体验
为一个客户做了关于每个差异otu在时间点上变化的折线图,使用python第一次做批量作图的程序,虽然是很简单的折线图,但是也是第一次使用matplotlib的纪念. ps:在第一个脚本上做了点小的改动 ...
- Intellij idea破解办法
最开始的时候intellij用得是社区版,专业版是要钱的.但是社区版的功能确实弱了很多:比如Diagrams功能就没有,比如社区版不支持web项目,想起个tomcat跑个web项目都没法搞.于是,重新 ...
- ABP 框架从源码学习——abp框架启动核心类AbpBootstrapper(2)
在AbpBootstrapper中的两个至关重要的属性:IIocManager 和 IAbpModuleManager public class AbpBootstrapper : IDisposa ...
- javascript 之作用域链-10
前言 在<执行环境>文中说到,当JavaScript代码执行一段可执行代码时,会创建对应的执行上下文(execution context). 变量对象(Variable object,VO ...
- Java 非线程安全的HashMap如何在多线程中使用
Java 非线程安全的HashMap如何在多线程中使用 HashMap 是非线程安全的.在多线程条件下,容易导致死循环,具体表现为CPU使用率100%.因此多线程环境下保证 HashMap 的线程安全 ...
- Proof of Elapsed Time--Hyperledger Sawtooth 共识算法
这一片文章中我们介绍一下Hyperledger Sawtooth项目中所提出的PoET共识算法, 现有的区块链共识算法大概可以分为两种: Nakamoto consensus:通过乐透的方式选择出一个 ...
- Python进阶内容(三)--- reduce
描述 functools.reduce() 函数会对参数序列中元素进行累积.函数将一个数据集合(列表,元组等)中的所有数据进行下列操作:用传给reduce中的函数 function(有两个参数)先对集 ...