最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ó)家法律
望都县| 信宜市| 观塘区| 二连浩特市| 大石桥市| 都昌县| 黄骅市| 德清县| 乃东县| 伽师县| 遂昌县| 靖西县| 龙门县| 黑河市| 阿瓦提县| 玉田县| 和顺县| 天气| 怀宁县| 开鲁县| 宜兴市| 石柱| 甘谷县| 扶绥县| 台中市| 儋州市| 明溪县| 拉萨市| 平乡县| 濮阳县| 城口县| 遂川县| 临泉县| 甘泉县| 贺兰县| 巢湖市| 合川市| 泗水县| 鄂托克旗| 革吉县| 西乡县|