在同步UMG的时候遇到的问题,反而解决了一个一直以来的疑问----在其所属的客户端上运行服务器
在拥有这个变量的Actor中执行spa
去修改Widget中的Text,咱们已经让Text显示在屏幕上了,并绑定了Text这个变量.net
两人游戏中,NewPlayerController一共有三个,服务器上两个,客户端一个(解释点击跳转),而服务器上的是没有必要去渲染UI的,因此咱们要在本地的NewPlayerController中去渲染UI。blog
在本地的NewPlayerController中建立Widget游戏
PS:能够这么认为服务器的NewPlayerController便是本地,是权威的,由于服务器上的NewPlayerController就存在服务器里,并且只有一个事件
储存服务器上的两个PlayerController(两个权威版的PlayerController)get
按下“Q”去呼叫GameMode的事件同步
历遍全部的PlayerController,转化为咱们两个NewPlayerController,这里须要注意两点变量
一般来讲,这样已经能够更新Widget的Text这个变量了。可是由于咱们的Widget都是在本地建立的,因此客户端的权威版/服务器上的NewPlayerController是没有建立Widget,这样运行不但不会获得预期的效果,并且还会报错,因此咱们得修改一下Update这个事件。渲染
将update事件改成在其所属的客户端上运行
意思就是哪一个NewPlayerController拥有Widget这个变量,就转换为哪一个NewPlayerController。很明显,客户端的只有本地的NewPlayerController才有Widget这个变量,因此就转换为本地的NewPlayerController,并修改了Widget的Text变量。