在其所属的客户端上运行

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

在其所属的客户端上运行

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

例子

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

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

NewPlayerController蓝图节点

155843_6l3u_3202881.png

在本地的NewPlayerController中创建Widget

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

GameMode蓝图节点

160250_1w7l_3202881.png

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

NewPlayerController蓝图节点

160537_JB5D_3202881.png

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

GameMode蓝图节点

161217_Aq4s_3202881.png

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

  • 有关于服务器的NewPlayerController,因为服务器只有一个NewPlayerController,所以转化没有问题。
  • 有关于客户端的NewPlayerController,因为客户端有两个NewPlayerController,所以转化可能会出现问题

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

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

161737_fgq6_3202881.png

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

转载于:https://my.oschina.net/u/3202881/blog/1607369

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值