在蓝图中同步Actor----Replicates----(1)

in 编程
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

本篇不介绍如何使用以及具体操作,仅总结以及一些细节问题(具体操作点击这里----在蓝图中同步 Actor)

Actor 粗略的简介

    在开始总结之前,我们得先粗略的了解一下Actor,了解一个东西,一件事物,那就得首先弄清楚它是什么。

那么Actor是什么?

    Actor是“可以更新的一群组件”----源于官方文档,以及《大象无形》中描述也同样有描述Actor

    Actor它能够被挂载组件----《大象无形》

个人理解为

    Actor就是一个鱼缸,你可以在里面放很多东西,我们把这些东西就称为组件

对Actor的介绍到这里就结束了,深入了解需要靠自己了,下面就是进入主题

Actor 同步

Actor Relication 简述

    Actor是网络传输的核心,甚至可以说Actor就是网络同步/传输的基本单位。----源于深入浅出UE4网络

网络同步的种种,如复制属性和函数调用都基于Actor的Replicate。如果 Replicate=false 那么你做的一切都是徒劳的。启用Replicate的方式有两种----蓝图和C++。在这里只说蓝图

同步两大要点

  1. 必须在服务器端
  2. Actor的Replicates必须为TRUE

UE4网络同步示意图

示意图

这个这么简陋的图肯定是我自己画的啦哈哈哈哈

简单说明

一个简单的同步测试

角色蓝图代码节点

结果

可以看到,在我们按下E键之后,生成的Actor并未同步到全部的窗口,并且连在服务器端生成的也是没有同步

这是为什么?

这是因为我们并没有开启火焰这个Actor的Replicates的属性,所以上面的要点要牢记

开启Replicate

需要在对应的蓝图的类默认值(火焰这个蓝图的类默认值)里勾选

在这里需要注意一个属性----NetLoadOnClient

这个属性会默认在载入地图的时候自动在客户端显示/载入Actor,即使你没有勾选Replicate

所以我们要取消勾选

否则会出现下面的结果(这个不是上面的同步例子,只是为了展示NetLoadOnClient的影响)

按照正确的应该就是NoReplicates是不会显示火焰的,但是因为勾选了NetLoadOnClient所以会默认自动加载 NetLoadOnClient只会影响在场景的Actor,而不会影响动态生成的Actor

继续----一个简单的同步测试----的例子

现在我们开启了同步属性也就是Replicate=true,那么接下来我们在测试一遍

服务器生成

我们在服务器生成一个火焰Actor,可以看到所有窗口都成功同步

客户端生成

    我们在客户端生成一个火焰Actor,可以看到只有当前的客户端才会生成火焰,其他窗口并不会同步生产(服务器以及其他客户端并不会同步在其中一个客户端生成的Actor)

总结

关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看