ue4 网络初学笔记

目前对网络理解还是比较混乱,有没有高人有合适的文章,麻烦在评论区中贴出来,帮助我学习,谢谢

思想:

为啥要有server 和 client,是为了多人玩,多人交互,提高可玩性。

为了安全性,一切逻辑判断、决策、结果都有server处理。有了结果,怎么把结果同步到client中呢,ue4有一套的框架来实现。

最终的目的是让client的内容和server一样。

1、一个actor 标记为 replicates时 ,当runtime的时候 在server端场景中生成这个actor,就会自动同步到client上,client上也会生成同样的这个actor。仅仅在runtime时 server端生成时,才会同步,生成之后actor中各种参数变化不会自动同步。

2、

【server上动态生成和在level中放置好一个actor 这两种效果是一样的】

server  动态生成可同步的 a,那么客户端必然会自动生成一个b,a是authority  b是remote

在b中调用

multicast函数,只在本地执行

on server 函数 ,不执行,本地和server都不执行

on client 函数 ,只本地执行

在a中调用

multicast函数,服务器执行,并且同步到每个客户端,每个客户端分别执行

on server 函数 ,只服务器执行,不同步客户端

on client 函数 ,只本地执行

那么我的疑问来了

--client 的actor调用on server函数,按照我的理解应该会同步到server上,就是说server上的函数应该会被调用啊,但是实际上并没有。这是为啥

--难道在actor中真的客户端就一点都不能调用服务器的函数吗?那客户端的按键触摸屏怎么反馈给服务器呢?难道只有playercontrol中能和服务器通信?

*******************************************************************************************************

动态生成时判断authority,如果时remote就生成t,三个运行实例 server    client: a和b,则server中没有t,a和b中分别有一个t,但是这两个t完全独立没有任何同步关系,但是他俩都是authority这个有点难以理解。

3、actor中变量a设置为replicated时,在runtime时,server的actor的a  就能同步到client中。前提是actor也得设置为replicates

这个也是单向的只能服务器向client同步,client不能向server同步

4、actor中变量a设置为RepNotify时,会自动创建OnRep_XXX函数,当a变量有变化时自动调用这个函数(client端也是如此)。同时client上的a变量会随时被server同步。前提是actor也得设置为replicates

这个也是单向的只能服务器向client同步,client不能向server同步

5、actor中函数b的同步,其实是custom event,function没有同步选项。前提是actor也得设置为replicates

multicast 同步到client

在server端运行a     actor的multicast 函数,则所有客户端上的a  都会执行相应的 函数

在client运行a  actor的 multicast函数 ,则只在client端执行,同步不到服务器端

run on server 只能运行在server端,不会同步到client

在server端运行,不会同步到客户端

在client运行,调用也不执行,既不在服务端运行也不在本地运行

run on owning client 只运行在client,就算server端强制调用也不会同步到客户端

在服务器端运行,则只在服务端的本地actor运行一次

在客户端运行

-----------------------------------------------------------------------------------------------------------------

未完待续

--------------------------------------------------------------------------------------------------------------

blueprint 版本 

createsession  joinsession openlevel servertravle 

原创文章 17 获赞 1 访问量 2041

猜你喜欢

转载自blog.csdn.net/opk8848/article/details/104384832