UE4 多人联机显示每个人的playid
目的:在多人聯(lián)機(jī)模式下,在每個(gè)pawn的上方顯示textrender,并且在textrender里顯示每個(gè)pawn的playerid
下面以一個(gè)listen server和兩個(gè)client的方式測試。
1. 創(chuàng)建一個(gè)帶有textrender的actor,并且勾選其replicated開關(guān)
2. 在Charactor的藍(lán)圖里面創(chuàng)建出textrender的actor并attach到Charactor上,并且將spawn出來的actor設(shè)置到本地
變量,后面需要用到這個(gè)變量來設(shè)置其文子,因?yàn)槠鋵?shí)動(dòng)態(tài)創(chuàng)建出來的。
這里是由服務(wù)器來動(dòng)態(tài)創(chuàng)建出帶有textrender的actor,然后attach到Charactor上,然后把textrender同步
到客戶端上,這樣客戶端的textrender就是服務(wù)器端一個(gè)副本了。
另外也可以直接在藍(lán)圖里把textrender的actor掛載成charactor的子組件,就不用上面的藍(lán)圖動(dòng)態(tài)創(chuàng)建了。
3. 在GameMode里面獲得并保存所有的player control
4. 在textrender的actor里面創(chuàng)建一個(gè)成員變量name,并且把他的同步屬性設(shè)置為RepNotify,并實(shí)現(xiàn)
其onRepName函數(shù),來設(shè)置textrender要顯示的player id
做到這里,textrender已經(jīng)被我們同步了,名子變量也同步了,名子變量一旦有變化,就會(huì)設(shè)置textrender顯示。
接下來只要在服務(wù)器端吧player id正確設(shè)置即可。
5 . 這里就是使用GameState里面保存的playid,GameMode里面保存的Player Control得到Pawn來設(shè)置其
? ? textrender里面的name變量。
總結(jié):
1. textrender上面顯示的文件并不會(huì)同步,因此我們只能使用一個(gè)變量來保存文字,然后同步這個(gè)變量,并且
在變量的repnotify函數(shù)里來設(shè)置文字顯示。
2. 只有服務(wù)器能拿到所有的playcontrol,因?yàn)樵O(shè)置文字變量由服務(wù)器來完成
效果展示:
總結(jié)
以上是生活随笔為你收集整理的UE4 多人联机显示每个人的playid的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 直接融资的五种方式
- 下一篇: 贸易额等于出口额加进口额吗