ActorObject = ActorAsset.TryLoad(); } UBlueprint* Generate = Cast<UBlueprint>(ActorObject); if (Generate) { ACustomAsset* Actor = GetWorld()->SpawnActor<ACustomAsset>(Generate->GeneratedClass); } 将Actor与非Actor对象做了区分,因为在创建时,他们会有一些区别。附带利用FSoftObjectPath进行反向查...
UObjectLibrary* TextureOL; //如果UObjectLibrary未被加载 if (!TextureOL) { //加载一手,类型写自己想要的 TextureOL = UObjectLibrary::CreateLibrary(UTexture2D::StaticClass(), false, false); //手动指定不要被GC回收 TextureOL->AddToRoot(); } //扫描路径 TextureOL->LoadAssetDataFromPath("/G...
UClass* MyBlueprintClass = LoadClass<UMyBlueprintGeneratedClass>(nullptr, TEXT("/Game/Blueprints/MyBlueprint.MyBlueprint_C")); 上述代码加载了一个UMyBlueprintGeneratedClass对象,代表的是"MyBlueprint"蓝图类的定义,可以用于创建"MyBlueprint"类的实例。 异步加载 蓝图提供Async Load Asset异步加载资源的...
}//搜索所有Texture的路径ObjectLibrary->LoadAssetDataFromPath(TEXT("/Game/Resource/UI/Texture/MenuTex")); TArray<FAssetData>TextureData; ObjectLibrary->GetAssetDataList(TextureData);for(int32 i=0; i<TextureData.Num(); ++i) {TexturePath.AddUnique(TextureData[i].ToSoftObjectPath()); } } ...
有两种新的数据类型暴露给了蓝图: “Asset ID(资源ID)”和“Class Asset ID(类资源ID)”。Asset ID代表一个已加载的或未加载的资源,可以使用“Resolve Asset(解析资源)”节点将其解析为一个对象。 如果该资源没有加载,那么“Resolve Asset(解析资源)”节点将返回一个无效的对象。 您可以使用“Load Asset(加载...
编辑器中提供了Load Asset蓝图接口,对应的代码在EditorAssetLibrary下: 但是该方法只能在Editor Utilities下使用,不能在继承Actor的蓝图中调用 创建一个Editor Utility Widget: 注意事项 StaticLoadObject()函数的对应路径写法(自己就在路径上捣鼓半天才找到了正确的路径写法,其他博客根本不做介绍) ...
LogSavePackage: Async saving from memory to 'C:/Users/36946/Documents/Unreal Projects/我的项目2/Saved/Cooked/WindowsNoEditor/我的项目2/Content/Mannequin/Character/Mesh/SK_Mannequin_PhysicsAsset.uasset'LogSavePackage: Total save time: 12.639862msLogSavePackage:Display: Finished SavePackage C:/Users/...
序列化到磁盘之后,UE4是将序列化的「二进制」数据以.uasset后缀的文件保存起来。使用LoadObject可以重新将uasset文件反序列化成UObject。 所以目前来看,UE4这套序列化是完全够用的。就用它了! 1.2 开干!(与遇到的问题) 序列化尝试 搜索互联网可得此文《UE4 – Save a texture as a new asset》。
UE4不能生成..这是怎么一回事?求大神解决LogSavePackage: Async saving from memory to 'C:/Users/36946/Documents/Unreal Projec
ResolveObject(); if (uoTmp == nullptr) { UE_LOG(LogTemp, Log, TEXT("CreateAsset path = %s"), *AssetPath); FStreamableManager& EKAssetLoader = GGameInstance->GetStreamableManager(); uoTmp = EKAssetLoader.LoadSynchronous(ref, true); } return uoTmp; } //使用案例1, 为UMG上面的U...