MY BLOG DIRECTORY:
YivanLee:专题概述及目录INTRODUCTION:
有时候我们需要写工具创建资源,初始化资源,管理资源等需求,比如合并DC的时候需要重新创建贴图,管理材质的时候需要创建并指认材质球,设置材质球等。
在一切开始之前需要清楚虚幻的资源结构以及合编辑器的关系。首先虚幻中有大量的类型,UMaterial,MaterialInstance,Texture,StaticMesh等等,这些资源从外部导入到引擎的时候做了一次数据抽取,如贴图资源模型资源等。这些数据被放在了一个UObject里,然后这个UObject放在一个Package里。
拿贴图的数据导入为例,如下图所示。
引擎会抽取数据然后创建对应的UTexture。使用创建的UTexture填充其Source。所以Unreal的资源创建有一个固定格式
(1)New一个Package
(2)New一个对应的UObject,在此时指认Package合UObject
(3)向这个UObject里填充数据
(4)MarkDirty,通知资源浏览器这里创建了一个新资源,然后保存。
MAIN CONTENT:
(1)Create Mesh Asset with c++
先来一段简单的
按下按钮后创建一个新的模型资源,代码如下:
FString CreatedMeshName = TEXT("TestMesh");
FString AssetPath = AssetDatas[0].PackagePath.ToString() + TEXT("/Content");
UPackage* NewMeshPack = CreatePackage(nullptr, *AssetPath);
UStaticMesh* NewStaticMesh = NewObject<