UObject* LoadedAsset = FindObject<UObject>(Package, *AssetName); 可以加载在桌面的uasset文件吗
时间: 2024-02-18 11:00:47 浏览: 298
不可以直接使用`FindObject`函数加载桌面上的uasset文件,因为该函数是在指定的`Package`中查找指定名称的`UObject`对象。而桌面上的uasset文件没有被加载到任何Package中,因此无法使用该方法加载。
如果要加载桌面上的uasset文件,可以使用以下代码:
```cpp
FString DesktopPath = FPaths::GetDesktopDirectory();
FString AssetPath = FPaths::Combine(DesktopPath, TEXT("your_file_name.uasset"));
UPackage* Package = LoadPackage(nullptr, *AssetPath, LOAD_None);
Package->FullyLoad();
UObject* LoadedAsset = FindObject<UObject>(Package, *AssetName);
```
其中,`LoadPackage`函数会将指定路径的uasset文件加载到一个新的`UPackage`对象中,然后使用`FullyLoad`函数加载该Package所依赖的所有资源,最后使用`FindObject`函数找到要加载的Asset对象。
需要注意的是,加载的uasset文件需要符合UE5的资源命名规范,并且需要在Editor中被注册过。否则可能会出现加载失败的情况。另外,如果该文件依赖于其他文件,记得将依赖的文件也一起复制到桌面上。
阅读全文