关于进程

1.进程:运行中的程序

虚幻4游戏进程的四种网络模式

1、StandAlone:单机模式,不联网

2、Client,网络游戏中的客户端。

3、ListenServer,服务器和一个客户端

4、DedicatedServer,专用服务器,没有图形表现,本地没有客户端

Replication,复制

1、是一种同步机制

2、Actor及Actor中的属性,可以设置是否复制。Actor要设置可复制,期内的属性设置可复制才会起作用。

勾选表示可被复制

Pawn及其子类、Character及其子类默认是可被复制的,Actor及其子类默认是不可复制,但都可以通过手动设置是否可被复制。

Actor中属性也可以设置是否被复制。Replicated:复制;RepNotify:复制并通知

如果选择“RepNotify”会自动生成一个OnRep_UsingMotion函数

3、复制是单向的,只能从服务器到客户端。不能从客户端复制到服务器

Actor的产生和复制

1、客户端Spawn的Actor,不会被复制

2、服务器Spawn的Actor,可以被复制

3、放置在关卡中的Actor,可以被复制。

1、服务器创建了3个角色,把这3个角色复制到客户端。

2、“玩家A”打了“玩家B”一下,服务器经过判断以后让“玩家B”掉了20点血剩余80点血,“玩家B”的血量值就会别复制到ABC这3个客户端的玩家B镜像

3、如果在客户端A修改了“玩家B”的血量值,是不会更新到服务器的,也不会更新到客户端B和C。复制是单向的,只能从服务器到客户端。不能从客户端复制到服务器

血量示例

服务器的两种模式

1、ListenServer:一个服务器和一个客户端,都在一个进程里面。

客户端A创建了游戏,客户端A同时是A的客户端和服务器,也是是客户端B和客户端C的服务器。

在ListenServer模式中,第一个游戏窗口是第一个打开,所以第一个游戏窗口既是客户端也是自己的服务器,同时也是第二个窗口的服务器。

如图所示,在第一个窗口打一下第二个游戏窗口的玩家掉了20点血还剩80点血,因为第一个窗口是客户端也是服务器,所以会把第二个玩家的血量复制到第二个客户端,因此第二个窗口的玩家可以看到自己还剩80点血。

在第二个窗口打一下第一个窗口的玩家,在第二个窗口可以看到第一个玩家还剩80点血,因为第二个窗口是客户端,第一个窗口才是服务器端,所以第一个窗口(客户端)并不会把数据同步到第二个窗口(服务器)。

附示例设置:

 

 

变量右上角出现2个白小球,表示是一个可被复制的变量。

2、DedicatedServer:专用服务器,没有可用于控制的客户端,只有其它客户端的镜像。

  

如图所示,左边打出的子弹,在右边窗口并不会显示,只要把子弹设置成可复制即可。并且右边窗口中立方体也能看到被子弹打飞。

但是在右边窗口打出的子弹(客户端)在左边窗口(服务器端)是不会出现的。

[UE4]Replications,复制的更多相关文章

  1. UE4网络同步属性笔记

    GameMode只有服务端有,适合写游戏逻辑.PlayerController每个客户端拥有一个,并拥有主控权.GameState在服务端同步到全端. CLIENT生成的Actor对其有Authori ...

  2. [UE4]复制引起的重复对象

    一.在角色的BeginPlay事件中,在角色正前方1米到2米处生成一立方体. 二.开启2个玩家,第一个创建是服务器端,第二个窗口是客户端.可以看到:服务器端窗口创建了2个灰色的立方体,客户端却创建了4 ...

  3. UE4 UriEncode 问题

    当Uri 路径中带中文字符时,需要进行编码 否则会照成不可预见错误: FString temp = FGenericPlatformHttp::UrlEncode(queryStr); FString ...

  4. UE4 4.14 专用服务器没有生成解决办法

    简单说一下UE4 专用服务器的生成(网上也有其它版本的但是在4.14.1 上不管用) 1.用源代码编译的引擎(如何获取百度上有很多介绍)创建一个C++ UE4 工程. 2. 在vs 中找到红色这个文件 ...

  5. ue4 NewObject/StaticConstructObject_Internal/StaticAllocateObject/FObjectInitializer:对象创建和初始化

    UObject是一套很复杂的体系,之前读ue3代码时曾分析过其类型系统实现,主要是与UClass间的关系 现在转到ue4,发现那一块其实差不多,于是再重点备忘一下UObject本身的创建和初始化过程 ...

  6. 《Inside UE4》-2-GamePlay架构(一)Actor和Component

    <Inside UE4>-2-GamePlay架构(一)Actor和Component     <Inside UE4>-2-GamePlay架构(一)Actor和Compon ...

  7. UE4 在C++ 动态生成几何、BSP体、Brush ---- Mesh_Generation

    截至UE4  4.10 runtime 无法生成BSP类 ,只能通过自定义的Mesh的Vertex 进行绘制 ( Google 考证,能改UE4源码的请忽略 ) 可用到的 UE4 集成的Render ...

  8. UE4简单AI

    首先做个小小的声明把,由于俺之前也没接触过AI ,所以有一些专业的词汇可能翻译存在各种问题,如果你发现的话,还是希望能够提出来哦,我们一起进步. 记住配合视频食用更佳哦~ 视频连接:http://ww ...

  9. UE4编程之C++创建一个FPS工程(二)角色网格、动画、HUD、子弹类

    转自:http://blog.csdn.net/u011707076/article/details/44243103 紧接上回,本篇文章将和大家一同整理总结UE4关于角色网格.动画.子弹类和HUD的 ...

随机推荐

  1. putty登陆sourceforge.net(设置登录)

    打开putty.exe session选项的host name (ip address) 填写 shell.soureceforge.net 端口22(不变) 接下来是connection选项子目录下 ...

  2. css与html 与js的基础语法

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Sample_2-23456.a ...

  3. 配置文件schema约束

    解释:https://blog.csdn.net/zh15732621679/article/details/79074380 操作:https://blog.csdn.net/lhg_55/arti ...

  4. Redis源码剖析和注释(七)--- 快速列表(quicklist)

    Redis 快速列表(quicklist)1. 介绍quicklist结构是在redis 3.2版本中新加的数据结构,用在列表的底层实现. 通过列表键查看一下:redis 列表键命令详解 127.0. ...

  5. Android USB gadget configfs学习笔记总结

    1.一个config_item 是通过显式用户空间mkdir操作创建的,通过rmdir销毁.属性(文件)在mkdir之后出现,可以通过read和write读取或修改属性文件.与sysfs一样,read ...

  6. Python列表生成器

    本篇将介绍python生成器,更多内容请参考:python学习指南 前言 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不 ...

  7. C++ vs Objective C

    oc Short list of some of the major differences: C++ allows multiple inheritance, Objective-C doesn't ...

  8. GUI相关学习资料

    分类 1,基于OS,包括windows,linux,android,ios 2,基于语言,包括c++,java,c#,javacript 3,按照技术分类,这个其实和os,编程语言分不开,大概可以分为 ...

  9. 大数据离线分析平台 用户数据Etl

    Etl目标  解析我们收集的日志数据,将解析后的数据保存到hbase中.这里选择hbase来存储数据的主要原因就是: hbase的宽表结构设计适合我们的这样多种数据格式的数据存储(不同event有不同 ...

  10. kafka_2.11-0.8.2.1+java 生产消费程序demo示例

      Kafka学习8_kafka java 生产消费程序demo示例 kafka是吞吐量巨大的一个消息系统,它是用scala写的,和普通的消息的生产消费还有所不同,写了个demo程序供大家参考.kaf ...