C++ 術(shù)語(yǔ)

類型

int8?/ uint8 :8位有符號(hào)/無符號(hào)整數(shù)

int16/ uint16 :16位有符號(hào)/無符號(hào)整數(shù)

int32/ uint32 :32位有符號(hào)/無符號(hào)整數(shù)

int64/? uint64 :64位有符號(hào)/無符號(hào)整數(shù)

字符串:String Handling

auto關(guān)鍵字不會(huì)自動(dòng)為您指定指針/引用,需要自己添加

容器:

TArray:類似于std :: vector

TMap

TSet

更多容器參考Containers

迭代器:TObjectIterator


UE4類

類的前綴:

從Actor派生的類以A為前綴(例如,AController)

從Object派生的類以U為前綴(例如,UComponent)

枚舉前綴為E(例如,EFortificationType)

接口類通常以I為前綴(例如,IAbilitySystemInterface)

模板類以T為前綴(例如,TArray)

從SWidget(Slate UI)派生的類以S為前綴(例如,SButton)

其他所有內(nèi)容都以字母F為前綴(例如,F(xiàn)Vector)


宏:

帶參數(shù)的宏定義可以看做是函數(shù)?

UCLASS():用于告訴Unreal為類生成反射數(shù)據(jù)。 該類必須派生自UObject。

說明符:Class Specifiers

UCLASS([specifier, specifier, ...], [meta(key=value, key=value, key, key, ...)])

USTRUCT():用于告訴Unreal為結(jié)構(gòu)生成反射數(shù)據(jù)。

說明符:Struct Specifiers

UPROPERTY():修飾UCLASS或USTRUCT的成員變量。

說明符:Property Specifiers

UPROPERTY([specifier, specifier, ...], [meta(key=value, key=value, ...)])Type VariableName;

eg:

UFUNCTION():允許將UCLASS或USTRUCT的類方法用作UFUNCTION。

Function Specifiers:參考文檔? ? ? ? ? ??

UFUNCTION([specifier, specifier, ...], [meta(key=value, key=value, ...)])

ReturnType FunctionName([Parameter, Parameter, ...])

UENUM():用于告訴Unreal為枚舉生成反射數(shù)據(jù)。

GENERATED_BODY():

在反射的類或結(jié)構(gòu)中需要GENERATED_UCLASS_BODY()/ GENERATED_USTRUCT_BODY()宏,將附加函數(shù)和typedef注入到類體中。


Unreal Property System:

反射是程序在運(yùn)行時(shí)檢查自身的能力。

?C++本身并不支持任何形式的反射

變量在動(dòng)態(tài)生成時(shí)需要使用宏才支持垃圾收集

Actor通常不會(huì)被垃圾收集,需要調(diào)用Destroy()

USTRUCT從FGCObject派生并覆蓋其AddReferencedObjects函數(shù)才能垃圾收集


基礎(chǔ)類:

默認(rèn)情況下,UObjects和AActors都有基本的內(nèi)存管理,包括垃圾收集。

大多數(shù)游戲玩法開發(fā)不涉及直接從UObjects派生,而是從AActor和UActorComponent派生。

每個(gè)Actor或UObject對(duì)象都是一個(gè)類的單個(gè)實(shí)例。每個(gè)Actor實(shí)例都獲得其自己的組件唯一實(shí)例。


?UObject

虛幻引擎中的基礎(chǔ)構(gòu)建塊稱為UObject。 這個(gè)類與UClass一起提供了引擎中許多最重要的基本服務(wù):

1.垃圾收集

2.屬性的可配置值

3.對(duì)屬性和方法的網(wǎng)絡(luò)支持


?AActor

包含Component對(duì)象的容器。例如,汽車上的輪子,方向盤,汽車車身,車燈等都將被視為組件,而汽車本身就是演員。

Actor可以訪問并使用Component提供的功能。

AActor是所有Actors的基類。?AActor派生自UObject。

在將AActor放置在某個(gè)級(jí)別之前,該AActor必須至少包含一個(gè)USceneComponent,其中包含該AActor的平移,旋轉(zhuǎn)和比例。

1.可放置在世界中的物體

2.充當(dāng)層次結(jié)構(gòu)的組件容器

3.網(wǎng)絡(luò)中可以復(fù)制的基本類型

Pawn:Pawn不被假定為人形。

在多個(gè)Pawn切換可以參考Possessing Pawns in Blueprint

Character:是一個(gè)人形風(fēng)格的Pawn。(Pawn的派生類)比Pawn多了1個(gè)CharacterMovementComponent,CapsuleComponent和SkeletalMeshComponent

UWorld :: SpawnActor()專門用于產(chǎn)生AActor,自動(dòng)調(diào)用BeginPlay和Tick

Destroy()會(huì)調(diào)用EndPlay

BeginPlay?- 當(dāng)對(duì)象首次進(jìn)入游戲存在時(shí)調(diào)用

Tick?- 每幀調(diào)用一次以便隨著時(shí)間的推移完成工作

EndPlay?- 當(dāng)對(duì)象離開游戲區(qū)域時(shí)調(diào)用


?UActorComponent

必須是AActor的父級(jí),組件只能附加到一個(gè)父組件或Actor,但它可能有許多子組件附加到自身,形成一個(gè)樹。

UActorComponents有自己的行為,通常負(fù)責(zé)在許多類型的AActors之間共享的功能。

actor中的子組件相對(duì)于其父組件或Actor具有位置,旋轉(zhuǎn)和縮放。

1.提供可視網(wǎng)格

2.粒子效應(yīng)

3.相機(jī)視角

4.物理互動(dòng)

5.運(yùn)動(dòng)邏輯


?UStruct

不必從任何特定類擴(kuò)展為使用UStruct。 您只需要使用USTRUCT()標(biāo)記結(jié)構(gòu)。

UStructs不是垃圾收集的。 如果創(chuàng)建它們的動(dòng)態(tài)實(shí)例,則必須自己管理它們的生命周期。


Game Mode和Game State管理游戲運(yùn)行的相關(guān)信息。

Game Instance:用于存儲(chǔ)程序運(yùn)行時(shí)需要持久保存的信息。 不會(huì)在關(guān)卡加載之后被刪除。


Game Mode負(fù)責(zé)制定游戲規(guī)則,例如玩家人數(shù),進(jìn)入游戲的方式,暫停游戲,level的轉(zhuǎn)換。

AGameModeBase——》AGameMode(查看文檔)

游戲模式只存在于服務(wù)器上,因此本地客戶端無法訪問模式實(shí)例。如果玩家需要與當(dāng)前游戲模式相關(guān)的更新信息,則該信息可以存儲(chǔ)在AGameStateBaseActor 保持同步(RPC)。

在藍(lán)圖中設(shè)置游戲模式

1.創(chuàng)建GameMode藍(lán)圖并為其設(shè)置(類)默認(rèn)值

2.為游戲分配默認(rèn)游戲模式

編輯——》項(xiàng)目設(shè)置——》地圖和模式

默認(rèn)GameMode下拉框指定要使用的GameMode


GameMode:游戲規(guī)構(gòu)成了游戲模式。只存在于服務(wù)器上。絕對(duì)不應(yīng)該有客戶需要了解的瞬態(tài)數(shù)據(jù)。

1.新建以Game Mode Base為基類的藍(lán)圖

AGameModeBase的派生類AGameMode實(shí)現(xiàn)了匹配狀態(tài)的概念,因此更適合標(biāo)準(zhǔn)游戲類型,如多人射擊游戲。

2.打開并設(shè)置Classes選項(xiàng)卡中的默認(rèn)類

3.設(shè)置默認(rèn)的游戲模式

4.覆蓋默認(rèn)的游戲模式

在編輯器的右側(cè)

GameState:

當(dāng)游戲中發(fā)生與規(guī)則相關(guān)的事件并需要跟蹤并與所有玩家共享時(shí),該信息將通過GameState進(jìn)行存儲(chǔ)和同步,例如排行榜。

GameState存在于服務(wù)器和所有客戶端上,可以自由復(fù)制以使所有計(jì)算機(jī)保持最新狀態(tài)。

PlayerState:

參與者的狀態(tài)(例如玩家姓名和分?jǐn)?shù))

作為游戲的一部分存在的非玩家AI將不具有PlayerState

所有玩家的PlayerStates都存在于所有機(jī)器上(與PlayerControllers不同),并且可以自由復(fù)制以保持同步。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、基本數(shù)據(jù)類型 注釋 單行注釋:// 區(qū)域注釋:/* */ 文檔注釋:/** */ 數(shù)值 對(duì)于byte類型而言...
    龍貓小爺閱讀 4,457評(píng)論 0 16
  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 2,076評(píng)論 0 9
  • 禪與 Objective-C 編程藝術(shù) (Zen and the Art of the Objective-C C...
    GrayLand閱讀 1,787評(píng)論 1 10
  • 晨從紅豆山莊南行拾級(jí)而上,聞水聲,如鳴佩環(huán),心樂之,遂取道而下,下見小瀑布,潭水尤清冽,潭上薄霧裊裊...
    半風(fēng)之舞閱讀 385評(píng)論 0 0
  • 我不能決定自己怎么生,但我想決定自己怎么死。
    高能磷酸閱讀 200評(píng)論 0 0

友情鏈接更多精彩內(nèi)容