UE中创建自定义Asset类

本文介绍如何在Unreal Engine(UE)中创建自定义Asset类,包括继承UObject的数据模型类,实现UFactory工厂类,以及创建AssetTypeAction以在编辑器中正确展示和操作自定义资产。内容涵盖了自定义资产类、Factory类和AssetTypeActions的详细步骤,并提及了UE4.25版本后的新要求。

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

在这里插入图片描述
在这里插入图片描述
需要做的是三个内容

  1. 自定义的资产类:(继承UObject),作为自定义资产的数据模型类.
  2. 相应的Factory类:(继承UFactory),这个工厂类用于被UE4引擎识别,作为可以在ContentBrowser中创建资产(Asset)
  3. 相应的AssetTypeActions:指定了诸如Asset的名称,应属于的类别,颜色等内容,在模块中实现自定义资产的类型
    注意,在4.25版本之前,只需要1,2这两个内容就可以实现上图的效果(默认自定义资产分类在MisCellaneous下),
    4.25版本之后必须要创建相应的AssetTypeActions才可以在编辑器中找到自定义的资产类。
    相关链接:
    https://answers.unrealengine.com/questions/966478/view.html
    https://answers.unrealengine.com/questions/969157/view.html

插件模块

实现自定义资产,需要有Runtime模块和Editor模块。
推荐使用插件来创建这些模块,对于模块的维护和应用在其他UE项目更加有用。
先在引擎中创建一个空插件,我创建了一个“MyTest”的插件。
对于新创建的空插件,只有一个Runtime类型的模块,复制这个模块文件,把对应的文件夹名和源文件等都改成带有“Editor”,作为Editor模块。

//插件文件的目录结构如下
  -MyTest
	- Resource
	- Source
	  - MyTest   //Runtime module
	    - Private
	    - Public
	    - MyTest.Build.cs
	  - MyTestEditor  //Editor module
	    - Private
	    - Public
	    - MyTestEditor.Build.cs
	- MyTest.uplugin

对于Runtime模块下的文件就不用修改了,修改Editor模块。
注意:在Editor模块的配置cs文件中要添加对Runtime模块(我的是MyTest)和UnrealEd的依赖.
在插件的uplugin中添加Editor模块。
(下面的代码就做个参考,改一下很快的)


MyTestEditor.h

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once

#include "CoreMinimal.h"
#include "Modules/ModuleManager.h"

class FMyTestEditorModule : public IModuleInterface
{
   
public:
	……
};

MyTestEditor.cpp

// Copyright Epic Games, Inc. All Rights Reserved.

#include "MyTestEditor.h"

#define LOCTEXT_NAMESPACE "FMyTestEditorModule"

……
#undef LOCTEXT_NAMESPACE
	
IMPLEMENT_MODULE(FMyTestEditorModule, MyTestEditor)

MyTestEditor.Build.cs

// Copyright Epic Games, Inc. All Rights Reserved.

using UnrealBuildTool;

public class MyTestEditor : ModuleRules
{
   
	public MyTestEditor(ReadOnlyTargetRules Target) : base(Target)
	{
   
				
		PrivateDependencyModuleNames.AddRange(
			new string[]
			{
   
				"CoreUObject",
				"Engine",
				"Slate"
在Unreal Engine (UE) 5.3 中,导入自定义的HLSL库通常涉及到几个步骤: 1. **创建包含HLSL源文件的目录**: - 在项目中创建一个新的目录,例如命名为“Shaders”或者“CustomMaterials”,用于存放你的HLSL代码。 2. **编写HLSL源文件**: - 使用文本编辑器编写你的HLSL代码,并确保它遵循标准的HLSL语法。保存文件,例如`MyCustomShader.hlsl`。 3. **将HLSL文件转换为头文件 (.hlslc)**: - UE引擎需要预处理HLSL,因此你需要使用工具将HLSL转换成头文件。可以使用第三方工具如`glslangValidator`,或者在UE项目的Build.cs或PostProcessBuild.cs文件中自动生成头文件。在命令行中执行似这样的命令: ``` glslangValidator.exe -V MyCustomShader.hlsl -o MyCustomShader.hlslc ``` 4. **将头文件复制到项目中**: - 将生成的`.hlslc`文件复制到你在第一步创建的目录内。 5. **在工程中引用头文件**: - 在UE的Material Library或Asset Registry中,打开材质模板或者新建一个材质。然后在材质的HLSL函数里,找到或添加对头文件的引用,如`#include "MyCustomShader.h"`。 6. **编译和更新**: - 打开内容浏览器,右键点击材质模板并选择“编译所有依赖项”(Compile All Dependencies),或者在Build Settings中编译整个项目,确保HLSL库已经被正确编译。 记住在使用自定义HLSL之前,可能还需要配置项目设置以启用支持HLSL。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值