UE4 --再次學(xué)習(xí)筆記(暫時(shí)封存)跑去學(xué)c++11、14、17 了
1.前綴表達(dá)(NewObject<>() , AClass::FuncName )
和反射相關(guān)
U?
從所有游戲性對(duì)象的基礎(chǔ)類進(jìn)行延伸。
它們無(wú)法被實(shí)例到世界場(chǎng)景中,必須從屬于 Actor。
總體而言,它們是與 組件 相似的對(duì)象。
A
從 可生成的 游戲性對(duì)象的基礎(chǔ)類進(jìn)行延伸。
它們是 Actor,可直接生成到世界場(chǎng)景中。
E? ?枚舉
b? ?布爾
F? ?其他項(xiàng)(或者叫雜項(xiàng))委托、FVector FRotator 都是這里面的
2. 類頭文件是標(biāo)準(zhǔn)c++
3. UCLASS 修飾符?
UCLASS()
Abstract 抽象基類? 不能被實(shí)例化?
Blueprintable 可藍(lán)圖化
BlueprintType 可用于在藍(lán)圖中指定改類
UPROPERTY()
VisibleAnywhere?
EditAnywhere?
BlueprintReadWrite?
BlueprintReadOnly?
UFUNCTION()
BlueprintCallable? c++ 中寫 藍(lán)圖調(diào)用
BlueprintImplementableEvent 藍(lán)圖中實(shí)現(xiàn) c++ 調(diào)用?
BlueprintNativeEvent? ?在c++ 中默認(rèn)實(shí)現(xiàn)?
后面加入 _Implementation 如果在藍(lán)圖中有實(shí)現(xiàn),則c++中的實(shí)現(xiàn)被覆蓋
BlueprintPure? ? 純函數(shù),沒(méi)有執(zhí)行線? 一般只用于數(shù)值計(jì)算返回值
Delegate
單波委托:
DECLARE_DELEGATE_OneParam(DelgateName,OneParam)? 一個(gè)參數(shù)無(wú)返回值類型的委托??
bind:
BindUFunction
BindUObject
BindStatic?
注意 bind 的時(shí)候的第一個(gè)參數(shù) InUserObject? 和FunName 填的是那個(gè)類的那個(gè)函數(shù)
一般InUserObject 是 NewObject<>(this)? ; 里面要填this? 不然生成不了對(duì)象?
BindUFunction 這個(gè) 如果調(diào)用的UObject 的函數(shù) 則 NewObject<>() 就可以
如果調(diào)用的是Actor 之上(character、pawn)的函數(shù) 則需要NewObject<>(this)
BindUObject? 這個(gè)? ?NewObject<>() 這樣就可以
番外:Lambda表達(dá)式
語(yǔ)法:[捕獲列表][mutable](函數(shù)參數(shù))[->return type]{函數(shù)體}? ?
[捕獲列表]? ??
= : 以值傳遞的方式??
& :以引用傳遞?
也可以單獨(dú)說(shuō)明捕獲變量的名字?
this 這個(gè)類了的成員變量
默認(rèn)是不能修改的,除非在()后加上muttable?
() 參數(shù) --- 類似于函數(shù)參數(shù)
多播委托: