五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

十二、藍(lán)圖與C++:實(shí)例化Actor與UObject

2022-12-20 11:44 作者:愛(ài)玩UE5的小哥哥  | 我要投稿

一.藍(lán)圖中實(shí)例化藍(lán)圖Actor

注意看左側(cè),每按下一次1,就會(huì)生成一個(gè)BP_Actor

1.創(chuàng)建一個(gè)將要實(shí)例化的Actor命名BP_Actor,添加一個(gè)靜態(tài)網(wǎng)格體組件

2.創(chuàng)建一個(gè)藍(lán)圖類(lèi):BP_SpawnActor,用來(lái)實(shí)例化BP_Actor

二.C++中實(shí)例化藍(lán)圖Actor

藍(lán)圖Spawn一個(gè)Actor,C++Spawn一個(gè)Actor

1.新建一個(gè)基于A(yíng)ctor的C++類(lèi):Cpp_SpawnActor

.cpp文件

解析:

①LoadClass:因?yàn)镃++無(wú)法直接識(shí)別藍(lán)圖類(lèi),所以需要使用LoadClass將藍(lán)圖類(lèi)的類(lèi)型加載出來(lái).使用語(yǔ)法:

LoadClass<基類(lèi)類(lèi)型(可以直接用AActor)>(NULL,資源引用);

資源引用獲取方式在上篇中講過(guò)了,這里要注意的是:需要在資源引用后面加一個(gè)"_C",否則藍(lán)圖類(lèi)型無(wú)法被正常加載.

②GetWorld:這個(gè)很好理解,想要在世界中生成對(duì)象,總要先確定是在哪個(gè)世界生成.

③SpawnActor:這個(gè)函數(shù)有很多重載,上圖是其中一種用法,語(yǔ)法為:

SpawnActor<類(lèi)型>(確切類(lèi)型,Transform));

類(lèi)型:必須是C++可識(shí)別的,藍(lán)圖類(lèi)可以直接用AActor

確切類(lèi)型:通過(guò)LoadClass加載出來(lái)的類(lèi)型

Transform:rotation,location,scale等信息

與藍(lán)圖對(duì)應(yīng)關(guān)系如下:

三.C++中實(shí)例化C++類(lèi)

上篇我們創(chuàng)建了一個(gè)C++的類(lèi):Cpp_AddComponent,用來(lái)Spawn這個(gè)C++類(lèi)

.Cpp文件

解析:

因?yàn)镃++可以直接識(shí)別C++類(lèi)ACpp_AddComponent),所以就不用LoadClass了,尖括號(hào)中可以直接寫(xiě)入該類(lèi)型

②C++類(lèi)獲取類(lèi)型很簡(jiǎn)單,無(wú)需加載,直接類(lèi)名::StaticClass()即可獲得

?四.C++中實(shí)例化不確定類(lèi)型的藍(lán)圖Actor

在目錄二中我們直接用C++Spawn出一個(gè)BP_Actor的藍(lán)圖類(lèi),假如我們不固定這個(gè)藍(lán)圖類(lèi)該怎么辦呢?想要生成任意actor類(lèi)型,這就要求生成的類(lèi)型不能寫(xiě)死,我們可以使用TSubclassof來(lái)實(shí)現(xiàn)

.h文件

.cpp文件

解析:

用法:TSubclassOf<基類(lèi)類(lèi)型>變量名;?

?.藍(lán)圖中實(shí)例化UObject

在藍(lán)圖中我們實(shí)例化最多的UObject其實(shí)就是UserWidget(基類(lèi)為UObject),藍(lán)圖中的CreateWidget節(jié)點(diǎn)在指定要生成的Widget類(lèi)型之前,節(jié)點(diǎn)名稱(chēng)為Construct NONE?

創(chuàng)建一個(gè)基類(lèi)為object的藍(lán)圖類(lèi):BP_Object

解析:

①Outer表示該Object的所有者,需要連入一個(gè)UObject或者Actor,否則會(huì)報(bào)錯(cuò)

②CreateWidget其實(shí)就是ConstructObjectFromClass的一個(gè)特殊版本,多了一個(gè)篩選功能,只會(huì)顯示UserWidget類(lèi)型

六.C++中實(shí)例化UObject

C++中實(shí)例化UObject非常類(lèi)似于原生C++中的new關(guān)鍵字,不過(guò)由于UE有自己的一套內(nèi)存管理機(jī)制,所以不能使用new關(guān)鍵字來(lái)實(shí)例化UObject對(duì)象.我們需要通過(guò)NewObject關(guān)鍵字實(shí)例化UObject對(duì)象

1.創(chuàng)建一個(gè)基類(lèi)為Object的C++類(lèi):Cpp_Uobject

2.在C++中實(shí)例化UObject:Cpp_Uobject

解析:

NewObject是一個(gè)模板函數(shù),語(yǔ)法格式為:

Type* Obj=NewObject<Type>();

NewObject有多個(gè)重載,一般使用上面這個(gè)無(wú)參數(shù)的版本即可.

十二、藍(lán)圖與C++:實(shí)例化Actor與UObject的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
南昌县| 翼城县| 武义县| 黄浦区| 左贡县| 诸暨市| 萍乡市| 读书| 克拉玛依市| 集贤县| 安吉县| 浮梁县| 灵寿县| 天祝| 凯里市| 江永县| 南宁市| 盐源县| 从化市| 武平县| 呼伦贝尔市| 承德市| 紫阳县| 西峡县| 扎赉特旗| 桃园县| 奉节县| 漠河县| 合作市| 招远市| 隆尧县| 白玉县| 阿城市| 文成县| 宾川县| 磐石市| 钟山县| 印江| 井冈山市| 云林县| 杭州市|