无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

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

【UE4】修改Material.cpp寫入自己的標(biāo)記

2020-12-22 22:24 作者:天空游蕩的魚  | 我要投稿

????為什么要這么做,你懂的!

????修改其實(shí)很簡(jiǎn)單,只需要在UMaterial::Serialize函數(shù)寫入字段即可。直接粘代碼了。

寫入數(shù)據(jù)到材質(zhì)球

值得注意的是:在Loading時(shí),需要做數(shù)據(jù)有效性檢查,F(xiàn)Archive不要越界了。

有寫入就會(huì)有還原,還原時(shí)應(yīng)該怎么做呢?

遍歷整個(gè)Content目錄,加載Material.uasset并保存就可以了。

UObject* MatObject = LoadObject<UObject>(NULL, TEXT("/Game/Common/PBR_Parent_Material/M_Screen_Parent01.M_Screen_Parent01"));


TArray<UPackage*> PackagesToSave;


checkf(((MatObject != nullptr) && MatObject->IsAsset()), TEXT("Invalid object to save: %s"), (MatObject != nullptr) ? *MatObject->GetFullName() : TEXT("Null Object"));

PackagesToSave.Add(MatObject->GetOutermost());


FEditorFileUtils::EPromptReturnCode ReturnCode = FEditorFileUtils::PromptForCheckoutAndSave(PackagesToSave, false , /*bPromptToSave=*/ false);

關(guān)卡也可以保存:

UObject* LevelObject = LoadObject<UObject>(NULL, TEXT("/Game/gameupdater/scene/TestLoadMap.TestLoadMap"));

bool bReturnCode = false;

UWorld* theWorld = Cast<UWorld>(LevelObject);

UClass* clz = LevelObject->GetClass();

Level = theWorld->GetLevel(0);

if (Level && FEditorFileUtils::PromptToCheckoutLevels(false, Level))

{

bReturnCode = FEditorFileUtils::SaveLevel(Level);

}


【UE4】修改Material.cpp寫入自己的標(biāo)記的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
绥中县| 江山市| 汉源县| 大悟县| 成都市| 临澧县| 阳西县| 钦州市| 绥滨县| 海安县| 铜陵市| 新昌县| 广灵县| 靖边县| 华亭县| 麻栗坡县| 城固县| 三亚市| 东乡族自治县| 阿拉善盟| 承德县| 红桥区| 图片| 红原县| 玉溪市| 亳州市| 饶河县| 秭归县| 古蔺县| 化隆| 东乌珠穆沁旗| 张家港市| 阳东县| 大同县| 志丹县| 和田市| 潜江市| 武平县| 商丘市| 甘德县| 襄樊市|