# 网络通信
Unreal内部支持网络通信。
在UE4.26,在编辑器中选择PlayAsListenerServer,玩家数大于两个则会将第一个作为服务器,其他作为客户端。
# 网络复制变量
蓝图中的变量有Replication属性,它一共有:
- None:不做操作
 - Replicated:该变量会复制,服务器端和客户端都会存在。
 - RepNotify:该变量也会复制,且操作该变量时均会执行一个OnRep函数。
 
一些组件也有Component Replicates属性,勾选了后会在客户端和服务器端间同步。下面是一个示例:

# 网络复制事件
事件也可以同步,在Replicates属性有:
- NotReplicated:不做操作
 - Multicast:从服务器广播到客户端
 - RunOnServer:只运行在服务器
 - RunOnOwningClient:只运行在自己的客户端。
 
# 网络通信原理
有以下几个常用的方法:
- CreateSession:发生在服务端,创建一个session。
 - FindSessions:在客户端查找session。
 - DestroySession:在服务端删掉session。
 - JoinSession:客户端加入session。
 
常用的属性有:
- GetCurrentPlayers:获取当前玩家。
 - GetMaxPlayers:获取最大玩家数。
 - GetServerName:获取服务器名字。
 - GetPingInMs:获取ping的数值。
 
# 网络通信实例
这里用到的资产有:
下面是创建流程:
创建搜索网络Session的主界面:


创建被搜索出来按钮的界面:


创建被打开关卡的GameMode:

