目标:UE5在Runtime下现实加载PNG,JPG等图片资源
先看效果:
步骤1. 创建UE5工程
新建UE5的C++空白项目TestPicturePro,记得选择C++,初学者包可以根据自己需要选择是否勾选。
步骤2. 创建空白插件,命名为SimplePictureTools
插件创建成功后可以看到如下目录:
步骤3. 创建的蓝图静态方法类
C++文件夹下右击,创建C++类
选择蓝图静态方法类,点击下一步
修改文件文件夹路径,我们这里修改到新创建的插件文件夹下
技巧:选择公共的话,UE会把头文件放到public文件夹下面,cpp文件放到Private文件夹下面,如果选择私有的话,UE会把头文件+cpp文件都放到Private文件夹下面。
同样创建成功后会出现
步骤4. 在SimplePictureToolsLibrary.h定义LoadImageToTexture2D方法
据说UTexture2D是一个指针,我们需要把他传到蓝图中,所以需要添加引用&InTexture
在LoadImageToTexture2D方法中添加用于:取出ImagePath文件的二进制数据的代码
加载图片处理模块
找到runtime下的ImageWrapper模块的方法如下:
模块名
并且要在TestPicturePro.Build.cs中添加模块ImageWrapper。
根据不同的文件格式创建不同的文件处理类
UE目前支持的格式如下:
判断传进来的文件格式,获取文件名后缀,判断文件格式,并且传给图片处理类
根据压缩文件,解析图片
内存分配的时候
,也可以把ImageResultDataNum()换成
ImageResultData.GetAllocatedSize()
接下来去获取BGRA的颜色数据
最后把颜色数据拷贝到需要的贴图中
到此,LoadImageToTexture2D函数功能已经写完,编译运行
步骤5. 创建UI进行测试
创建4个按钮,用来分别测试不同图片
使用蓝图定义函数BP_LoadImageToTexture2D,定义4个按钮事件,分别调用BP_LoadImageToTexture2D测试JPG,PNG,BMP等图片
好了,最近这一节这么多了,大家课后自己尝试其他类型图片,希望今天的内容对你有所帮助! 最后效果如下:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!