UE4 动态加载(C++)

UFUNCTION(BlueprintCallable)
void ScanDirectory(TArray<FString>& AllFiles, const FString & FilePath, const FString& Postfix);

UFUNCTION(BlueprintCallable)
static TArray<UObject*> FindOrLoadAssetsByPath(const FString& FilePath);
// 遍历文件夹下指定类型文件

void UDynamicLoadObjectLibrary::ScanDirectory(TArray<FString>& AllFiles, const FString & FilePath, const FString& Postfix)
{
	FString SearchedFiles = FilePath + Postfix;

	TArray<FString> FindedFiles;

	/*
			------------  FindFiles  ------------

			* 使用指定的文件扩展名筛选器查找给定目录中的所有文件。
			*
			* 目录,要搜索的目录的 '''绝对路径'''。例:“C:\UE4\Image”
			*
			* 文件扩展名,如果文件扩展名是空的,或者是一个空字符串“”,那么所有的文件都会被找到。
			*
			* 所有匹配可选 FileExtension 筛选器的文件,或者所有文件(如果没有指定)。
			*
			* FindFiles( TArray<FString>& FileNames, const TCHAR* Filename, bool Files, bool Directories)
			*
			* bool Files = true 返回文件
			* bool Directories = true 返回文件夹
	*/

	IFileManager::Get().FindFiles(FindedFiles, *SearchedFiles, true, false);

	for (int i = 0; i < FindedFiles.Num(); i++)
	{
		FString SearchFile = FilePath + FindedFiles[i];

		AllFiles.Add(SearchFile);
	}
}
TArray<UObject*> UDynamicLoadObjectLibrary::FindOrLoadAssetsByPath(const FString& FilePath)
{
	TArray<UObject*> LoadedObjects;

	// 加载指定路径和子路径中找到的所有文件
	// 这里的路径不是绝对路径,'/Game/Blueprint/'
	EngineUtils::FindOrLoadAssetsByPath(FilePath, LoadedObjects, EngineUtils::ATL_Regular);
	
	return LoadedObjects;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值