actors
客戶端複製actor被spawn出來時, 只有location和rotation在prebeginplay()和postbeginplay()時是合法的
被複製的actor只有在伺服器關閉他們的複製通道時才被銷毀
actor的屬性複製是可靠的. 只會從伺服器往客戶端同步
freplicationflags
屬性描述
bnetowner
在目標機器上被playercontroller控制
bnetinitial
初始網路更新
bnetsimulated
actor是 remoterole 模擬的.
brepphysics
actor的replicatedmovement.brepphysics 為true
components(元件)
多數componet是不複製的, 因為多數邏輯是在actor中完成的, 只需要同步compoent相關的呼叫即可, 除非component本身需要直接進行屬性和事件的複製.
元件複製分兩種:
aactorcomponent::setisreplicated(true)
variables(變數)
伺服器的變數改動時會傳送到客戶端進行更新, 客戶端的自行更改會被覆蓋.
uproperty
(replicated)
tarray
<
uattributeset
*> spawnedattributes;
uproperty(transient, replicatedusing=onrep_isactive)
uint32 bisactive:1;
函式呼叫
其實就是rpc.
伺服器呼叫客戶端執行
ufunction
(client
);void
clientrpcfunction
();
客戶端呼叫伺服器執行
ufunction
(server
);void
serverrpcfunction
();
伺服器呼叫, 伺服器和客戶端執行
ufunction
(netmulticast
);void
multicastrpcfunction
();
一些注意事項:
預設rpc是不可靠的, 除非加個標記:
ufunction
(client
,reliable
);void
clientrpcfunction
();
rpc函式可以加入校驗函式:
ufunction
(server
,withvalidation
);void
somerpcfunction
(int32
addhealth
);
如果校驗不沒通過, 伺服器會踢掉這個客戶端
bool
somerpcfunction
_validate
(int32
addhealth
)return
true;
// this will allow the rpc to be called
}void
somerpcfunction
_implementation
(int32
addhealth
)
其它
並不是所有的actor都會被同步的, 而與你」相關」的, 比如不在你視野範圍內的就不需要同步
UE4學習筆記 Gameplay Classes
增加類 編輯器中有乙個類嚮導,可以生成類所需要的檔案和基礎巨集 標頭檔案由於ue4對c 做了擴充套件,實現了如序列化反射等特性,跟qt的做法類似 在 中加入一些巨集關鍵字,在編譯期間生成相應的c 因此,對於每個類來說,都有會生成乙個classname.generated.h的檔案 類宣告uclass...
UE4學習筆記 Gameplay Classes
增加類 編輯器中有乙個類嚮導,可以生成類所需要的檔案和基礎巨集 標頭檔案由於ue4對c 做了擴充套件,實現了如序列化反射等特性,跟qt的做法類似 在 中加入一些巨集關鍵字,在編譯期間生成相應的c 因此,對於每個類來說,都有會生成乙個classname.generated.h的檔案 類宣告uclass...
UE 4 學習筆記 1
ue4 unreal engine 4 虛擬 虛幻 引擎 4 遊戲開發是一項高度複雜的 開發工作。基本知識內容 但是是否需要學完這麼多知識才能開發遊戲?顯然,這樣學習遊戲開發入門成本太高。於是,前人將基礎知識的複雜 進行了封裝 使得入門的遊戲開發者可以重點關心遊戲邏輯和功能方面的 無需接觸最底層的知...