[导读]今天看到文档中游戏性指南->远程调用函数->在蓝图中使用远程调用函数的 Run On Owning Client 在所有权的客户端上运行部分,发现把Add Item和Remove Item设置为Not Replicated时,跟示例的效果并没有区别,下面将分析这种情况的原因和其中的原理。

今天看到文档中游戏性指南->远程调用函数->在蓝图中使用远程调用函数的 Run On Owning Client 在所有权的客户端上运行部分,发现把Add Item和Remove Item设置为Not Replicated时,跟示例的效果并没有区别,下面将分析这种情况的原因和其中的原理。

1,首先解释上面这种情况的原因,该示例使用的是第三人称模板,在Character里写了一个String变量Inventory,设置如图:

在场景中放置一个Trigger Box,在关卡蓝图添加BeginOverlap和EndOverlap事件:

AddItem和RemoveItem:打印一个字符串并给Character里的Inventory赋值。

在示例中这两个事件设置为Run On owing Client,游戏运行起来的效果是当服务器的Character进入Trigger时,会调用服务器的Character的AddItem,当切换到客户端的Character进入Trigger时,会调用客户端的Character的AddItem,但是这是依赖Trigger重叠的Actor来分别调用的,跟AddItem这个函数的同步属性没有关系。根据RPC中的图表:

可以看到当在服务器调用RPC时,如果actor的所有权是服务器,那调用的函数是notreplicated、server、client时的结果都是在服务器上执行,示例中是在Triggerbox的Overlap事件调用的AddItem,所以AddItem属于Triggerbox,而Triggerbox的所有权是服务器,AddItem都是在服务器上执行的,所以AddItem函数的这几个选项的结果都是一样的。

下面是关于RPC的一些试验:

1,Level Blueprint存在于服务器和客户端,GameMode存在于服务器(这个都知道-.-)

2,枪开火的函数应该如何实现?

根据文档说明,Run on owing client必须放在以上Actor中执行,否则服务器不知道要给哪个客户端执行,所以一种方法是开火的函数设置为Run On Server,并且把产生的粒子特效设为复制,这样所有客户端都能看到效果.

还有一点需要注意,虚幻采用的是客户端服务器模式,一个客户端是不能直接与任何一个客户端通信的!!!但是可以模拟这个行为,创建两个函数,第一个为Run On Server,第二个为Multicast,第一个函数只负责调用第二个函数,第二个函数为创建开火的粒子特效,这样创建的粒子特效不用复制也能有同样的效果。

ue4 rpc php,UE4 Run On owing Client解析(RPC测试)相关推荐

  1. 发生ActionScript 错误:[RPC Fault faultString=发送失败 faultCode=Client.Error.MessageSend faultDetail=Ch...

    发生ActionScript 错误:[RPC Fault faultString="发送失败" faultCode="Client.Error.MessageSend&q ...

  2. Spark RPC框架源码分析(二)RPC运行时序

    前情提要: Spark RPC框架源码分析(一)简述 一. Spark RPC概述 上一篇我们已经说明了Spark RPC框架的一个简单例子,Spark RPC相关的两个编程模型,Actor模型和Re ...

  3. rpc是什么?php中流行的rpc框架有哪些?

    什么是rpc框架 先回答第一个问题:什么是RPC框架?如果用一句话概括RPC就是:远程调用框架(Remote Procedure Call) 那什么是远程调用? 通常我们调用一个php中的方法,比如这 ...

  4. php rpc调用,PHP远程调用, 为什么需要使用RPC

    前言 一个项目,从开始到版本更新,一直到最后的版本维护.功能在不断增多,对应的代码量也在不断增加,也就意味着项目变得更不可维护,这时候,我们需要用拆分的方式将一个项目打散,以便开发团队更好的对项目进行 ...

  5. xp显示rpc服务器不可用,XP系统如何解决RPC服务器不可用?

    使用打印机或其他操作安装计算机时,它会提示RPC服务器不可用.很多人都会遇到这个问题. 许多朋友可能不了解RPC,他们不知道如何解决它.当用户在WinXP系统计算机上运行时,RPC服务器不可用该怎么办 ...

  6. RPC基本原理以及如何用Netty来实现RPC

    什么是RPC RPC(Remote Procedure Call)- 远程过程调用,是一个计算机通信协议.该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程 ...

  7. STM32F1 W5500 TCP Client 回环测试

    刚刚接触W5500的时候,做TCP Client回环测试的时候,出现很奇怪的问题,查了好多遍代码,死活连接不上PC网络助手的TCPServer.其实代码本身没什么大问题,PC机的防火墙忘记关闭了.总结 ...

  8. 误删系统rpc服务器不可用,rpc服务器不可用,小编教你rpc服务器不可用怎么办

    网上介绍关于"RPC服务器不可用"的内容,才知道RPC是一种协议,主要是为组件提供一种相互通信的方式,传递请求的结果,故障原因是因为系统对本地系统禁用RPC,只需要启动RPC就可以解决这一问 ...

  9. w7系统显示rpc服务器不可用,教你win7系统rpc服务器不可用怎么办

    用户在使用电脑进行时间同步,安装打印机或者其它的操作的时候可能会遇到同样一个问题,那就是提示"RPC服务器不可用",很多朋友可能对于RPC并不了解,更不知道如何解决,下面,小编就来 ...

  10. UE4 Run On Server与Run on owning client

    转载于:https://www.cnblogs.com/coolbear/p/7154876.html

最新文章

  1. ajax data参数没有值,ajax $.get的data参数无法传递
  2. POJ 3348 Cows 凸包面积
  3. 【指标统计】根据遥控补全遥信
  4. js reduce实现中间件_Laravel中间件实现原理及实例分析
  5. 用汇编的眼光看C++(之拷贝、赋值函数)
  6. 硒等待:内隐,外显,流利和睡眠
  7. 爱奇艺视频播放怎么开加速
  8. LeetCode(1030)——距离顺序排列矩阵单元格(JavaScript)
  9. MongoDB学习笔记(四)--索引 性能优化
  10. eclipse 输入光标由于误操作变成小黑块如何恢复
  11. java基础完整代码,22年最新
  12. 基于android的学生选课信息app
  13. Linux内核源代码 学习笔记
  14. 【板子】 0-1背包问题 一维数组
  15. Magento常用功能插件
  16. 系统监控必备工具procmon
  17. QQ、YY与webRTC回声消除效果对比分析与展望
  18. ZigBee 3.0实战教程-Silicon Labs EFR32+EmberZnet-2-01:芯科的硬件解决方案EFR32
  19. 工控流量分析题+wireshark学习
  20. Flash Switcher(一) - 快捷Tab切换器

热门文章

  1. 数据科学 | 如何解释线性回归的R方
  2. 【Unity】 ios游戏开发中登陆 GameCenter的问题和脚本
  3. IPAM——IP地址管理
  4. windows修改mysql密码
  5. 微软开发的www服务器程序是,WebDeploy 微软开发的IIS6同步应用程序
  6. matlab三维地形显示,三维地形可视化的MATLAB实现_张林泉
  7. 凌晨!科比因坠机离世, 球迷泪崩:凌晨4点,我的青春没了
  8. LINUX——正则表达式
  9. Chrome浏览器翻译无法使用和ide谷歌翻译插件【更新 TKK 失败,请检查网络连接】解决办法
  10. 独家|一文读懂优化算法