在上一篇博客中(【UE C++】蓝图调用C++函数),我们用C++创建了一个蓝图函数库,本篇文章在这个蓝图函数库基础上增加一个方法,该方法只需输入一个文件目录路径,就可在场景中生成该目录下得所有静态网格体。(如果不想写C++的话,可以用这篇文章的方法:UE4 | BP | 使用蓝图获取Uasset资源_ue4 蓝图加载uasset资产) 在.cpp文件中增加如下代码:
在.h文件中添加如下代码:
编译后,打开虚幻编辑器,新建一个父类为Actor的蓝图类,这里命名为“BP_CreateStaticMesh” 打开“BP_CreateStaticMesh”,添加一个静态网格体组件 添加一个变量,这里命名为“Mesh” “Mesh”变量的变量类型是静态网格体的对象引用。勾选可编辑实例、生成时公开 在构造函数中添加如下节点,这样在“BP_CreateStaticMesh”生成时,就能根据传入给Mesh的模型来生成静态网格体 再新建一个Actor蓝图,这里命名为“BP_CreateStaticMeshByPath” 打开“BP_CreateStaticMeshByPath”,在事件图表中添加如下节点 如下是我静态网格体的存放路径 将“BP_CreateStaticMeshByPath”拖入视口 运行游戏可以看到生成了静态网格体
有时候用户想自己改变这个静态网格体,该如何做?我目前进展是: 首先打包设置中,取消勾选“使用Pak文件”,这样打包后Content文件夹中就不再仅是一个.pak文件,而是和打包前工程目录中的Content文件夹一样。 打包后,比如我删除了“Key”这个文件夹,场景中确实不会出现对应的静态网格体,还原后也还是能生成之前的静态网格体。 但是让人头大的是打包后的模型不再是FBX或是obj之类的模型,而是变成了.uasset格式文件,这样用户就不能直接向文件夹中导入一个3D模型让引擎调用。 我特地搜了一下如何将FBX转.uasset格式文件,例如:[UE4 convert .fbx to .uasset commandlet] - #7 by nyudeb - Pipeline & Plugins - Epic Developer Community Forums ,但是即使生成了.uasset文件还是不行,我将.uexp文件删除后,打包后的exe就无法运行并且弹出报错的窗口。 如果路过的大佬有什么见解,还希望在评论区指点一下,谢谢~ 参考文章 |
原文地址:https://blog.csdn.net/ChaoChao66666/article/details/131688061
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://www.msipo.com/article-430.html 如若内容造成侵权/违法违规/事实不符,请联系MSIPO邮箱:3448751423@qq.com进行投诉反馈,一经查实,立即删除!
Copyright © 2023, msipo.com