UE4 多人联机显示每个人的playid

目的:在多人联机模式下,在每个pawn的上方显示textrender,并且在textrender里显示每个pawn的playerid

下面以一个listen server和两个client的方式测试。

1. 创建一个带有textrender的actor,并且勾选其replicated开关


2. 在Charactor的蓝图里面创建出textrender的actor并attach到Charactor上,并且将spawn出来的actor设置到本地

变量,后面需要用到这个变量来设置其文子,因为其实动态创建出来的。


这里是由服务器来动态创建出带有textrender的actor,然后attach到Charactor上,然后把textrender同步

到客户端上,这样客户端的textrender就是服务器端一个副本了。

另外也可以直接在蓝图里把textrender的actor挂载成charactor的子组件,就不用上面的蓝图动态创建了。

3. 在GameMode里面获得并保存所有的player control


4. 在textrender的actor里面创建一个成员变量name,并且把他的同步属性设置为RepNotify,并实现

其onRepName函数,来设置textrender要显示的player id


做到这里,textrender已经被我们同步了,名子变量也同步了,名子变量一旦有变化,就会设置textrender显示。

接下来只要在服务器端吧player id正确设置即可。

5 . 这里就是使用GameState里面保存的playid,GameMode里面保存的Player Control得到Pawn来设置其

    textrender里面的name变量。



总结:

1. textrender上面显示的文件并不会同步,因此我们只能使用一个变量来保存文字,然后同步这个变量,并且

在变量的repnotify函数里来设置文字显示。

2. 只有服务器能拿到所有的playcontrol,因为设置文字变量由服务器来完成

效果展示:


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值