【UE4】在UE4的蓝图中实现文件的下载

本文介绍了如何在UE4蓝图中实现文件的下载功能,通过在ALevelScriptActor中编写功能函数,处理从URL到本地保存的过程。详细步骤包括.h和.cpp文件的编写,并在蓝图中调用相关节点。提供了多个视频下载地址以供测试,参考了两篇优快云博客文章。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在日常的UE4使用场景中,可能会存在这样的需求:输入一个url的地址,来改变当前游戏的某项内容,如音乐、背景等等

在这过程中就会涉及到内容的下载,UE4自带的蓝图中已经存在了一些自带的下载工具,但是只是针对特定格式类型的文件,所以就需要一个通用的文件下载功能来应对不同的文件

由于要将数据传输到蓝图,所以功能函数一般写在ALevelScriptActor中,具体代码如下:

.h文件中:

	UFUNCTION(BlueprintCallable, Category = "NormalFunctionLibrary|Download")
	static class USoundWave* GetContentFromUrl(FString URL, FString SaveSource, FString SaveName);

.cpp文件中:

USoundWave * ALevelScriptActor::GetContentFromUrl(FString URL, FString SaveSource, FString SaveName)
{
	std::string url = TCHAR_TO_UTF8(*URL);
	size_t len = url.length();//获取字符串长度
	int nmlen = MultiByteToWideChar(CP_ACP, 0, url.c_str(), len + 1, NULL, 0);//如果函数运行成功,并且cchWideChar为零,
	//返回值是接收到待转换字符串的缓冲区所需求的宽字符数大小。
	wchar_t* buffer = new wchar_t[nmlen];
	MultiByteToWideChar(CP_ACP, 0, url.c_str(), len + 1, buffer, nmlen);

	//转换为ASNI
	std::string str = TCHAR_TO_UTF8(*SaveSource);
	str = str + TCHAR_TO_UTF8(*SaveName);

	std::wstring widstr = std::wstring(str.begin(), str.end());
	const wchar_t *pwidstr = widstr.c_str();

	HRESULT hr = URLDownloadToFile(NULL, buffer, pwidstr, 0, NULL);

	return nullptr;
}

然后在关卡的蓝图中使用该节点
在这里插入图片描述
其中,URL为要下载的文件的地址;save source为文件保存的地址(地址后要加“\”),save name为文件保存的名字,要加上后缀

然后运行游戏,文件就会被保存下来
在这里插入图片描述

以下是一些下载视频的地址,可供测试:

http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4

http://vjs.zencdn.net/v/oceans.mp4

https://media.w3.org/2010/05/sintel/trailer.mp4

http://mirror.aarnet.edu.au/pub/TED-talks/911Mothers_2010W-480p.mp4

视频下载网站:
https://www.sample-videos.com/index.php#sample-mp4-video

参考了2篇文章
https://blog.youkuaiyun.com/o0pk2008/article/details/105246841
https://blog.youkuaiyun.com/weixin_41010198/article/details/88055078

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值