在其所属的客户端上运行

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

在同步UMG的时候遇到的问题,反而解决了一个一直以来的疑问----在其所属的客户端上运行

在其所属的客户端上运行

在拥有这个变量的Actor中执行

例子

去修改Widget中的Text,我们已经让Text显示在屏幕上了,并绑定了Text这个变量

两人游戏中,NewPlayerController一共有三个,服务器上两个,客户端一个(解释点击跳转),而服务器上的是没有必要去渲染UI的,所以我们要在本地的NewPlayerController中去渲染UI。

NewPlayerController蓝图节点

在本地的NewPlayerController中创建Widget

PS:可以这么认为服务器的NewPlayerController即是本地,是权威的,因为服务器上的NewPlayerController就存在服务器里,而且只有一个

GameMode蓝图节点

储存服务器上的两个PlayerController(两个权威版的PlayerController)

NewPlayerController蓝图节点

按下“Q”去呼叫GameMode的事件

GameMode蓝图节点

历遍所有的PlayerController,转化为我们两个NewPlayerController,这里需要注意两点

通常来说,这样已经可以更新Widget的Text这个变量了。但是因为我们的Widget都是在本地创建的,所以客户端的权威版/服务器上的NewPlayerController是没有创建Widget,这样运行不但不会得到预期的效果,而且还会报错,所以我们得修改一下Update这个事件。

update事件改为在其所属的客户端上运行 

意思就是哪个NewPlayerController拥有Widget这个变量,就转换为哪个NewPlayerController。很明显,客户端的只有本地的NewPlayerController才有Widget这个变量,所以就转换为本地的NewPlayerController,并修改了Widget的Text变量。

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

推荐使用阿里云服务器

超多优惠券

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

朕已阅去看看