UE4 伺服器同步

2021-07-14 04:09:51 字數 1612 閱讀 3133

根據「網路連線概述」中所述,actor 是實現同步的主要推動者。伺服器將保留乙份 actor 列表並定期更新客戶端, 以便客戶端保留每個 actor (那些需要被同步的actor)的近似複本。

actor 主要通過兩種方式進行更新:

屬性更新和 rpc 的主要區別在於,屬性可以在發生變化時隨時自動更新,而 rpc 只能在被執行時獲得呼叫更新。

其中,最具代表性的一類應當複製的屬性就是 actor 的健康值。每當健康值發生變化時,您通常都希望告知客戶端。 如果健康值沒有變化,則不會傳送任何資料。這樣做很有效率。但需要記住的是,即使這個屬性沒有變化(因此不消耗任何頻寬), 它仍然會消耗 cpu 資源來判斷這個值是否發生變化。因此,這適合那些經常變化的屬性。

rpc 的例子包括:讓所有客戶端在某個位置看到同一場**。您可以以位置和半徑為引數的 rpc 函式,同時在每次發生**時呼叫它。 您也可以將此儲存為一組屬性,通過同步的方式將其傳達給客戶端,但這種做法會損失一些效率,因為**出現的頻繁度也許不會高得有必要將它們作為屬性。

變數同步(replication)

同步uobject引用,通過replicated修飾宣告

classengine_api aactor:publicuobject;

函式同步(rpc)

在函式宣告時使用server,client, ornetmulticast關鍵字修飾ufunction

客戶端呼叫,伺服器執行

ufunction(client);voidclientrpcfunction();

伺服器呼叫,客戶端執行ufunction(server);

voidserverrpcfunction();

伺服器呼叫,在伺服器和所有客戶端執行
ufunction(netmulticast);voidmulticastrpcfunction();

組建同步

charactermovement=objectinitializer.createdefaultsubobject(this,text("charmovecomp"));if(charactermovement)

藍圖中組建同步

blueprintactor同步

您可以設定是否複製actor,通過下方的 replication (複製)部分下的 defaults (預設)選項卡來完成。

blueprint變數同步

您可以如下圖中這樣,通過啟用變數的 細節 面板的勾選框來啟用對 health (生命值)的變數 replication (複製)。

blueprint事件同步

類似的在事件面板中也有事件同步或者廣播的設定

分類: 

ue4

UE4 伺服器連線中版本比較

需求乙個工程使用原始碼版本執行,乙個工程使用發布版本引擎執行,兩個客戶端在editor模式下,可以通過joinsession這種方式進行連線,正常會判斷兩份客戶端版本不同不可以連線,可以通過繫結fnetworkversion isnetworkcompatibleoverride 來實現自定義的版本...

ue4玻璃材質 UE4 材質

本文中,我們將首先討論基於物理的渲染,什麼是材質域,什麼是材質,什麼是材質例項,什麼是主材質,我們將討論材質的一些建議和禁忌。最後,我們將了解一些材質概念,你可以將其用於各類專案中的材質。pbr 表示基於物理的渲染,基於物理的渲染意味著我們根據現實模擬光線,而不是根據主觀想法模擬光線。光線的最終效果...

ue4材質節點大全 UE4 材質

凹凸貼圖偏移 bumpoffset 是虛幻引擎4術語,就是通常所謂的 視差貼圖 bumpoffset表示式可以使材質產生深度錯覺,而不需要額外的幾何體。深度資訊。高度貼圖的值越亮,材質的 凸出 效果越明顯 當攝像機在表面上移動時,這些區域將產生視差 位移 較遠 其位移程度最小。在不改變原有模型面數的...