基于C++代码的UE4学习(三十一)——创建的自己的资源文件

 

首先创建一个继承自UObject类的类,起名为UserAsset。

 

 

 1 // Fill out your copyright notice in the Description page of Project Settings.
 2 
 3 #pragma once
 4 
 5 #include "CoreMinimal.h"
10 #include "UObject/NoExportTypes.h"
11 #include "UserAsset.generated.h"
12 
13 /**
14  * 
15  */
16 UCLASS()
17 class MYPROJECT14_API UUserAsset : public UObject
18 {
19     GENERATED_BODY()
20 
21 public:
22     UUserAsset();
27 
28     UPROPERTY(EditAnywhere, Category = Properties)
29     FString Name;
30 };
31 
32 // Fill out your copyright notice in the Description page of Project Settings.
33 
34 //以下是源文件
35 #include "UserAsset.h"
36 
37 UUserAsset::UUserAsset() {
38     Name = "Dlak";
39 }

 

 

在创建一个Factory类,自定义的资源创建都是需要通过Factory类实现的。

 

 1 // Fill out your copyright notice in the Description page of Project Settings.
 2 
 3 #pragma once
 4 
 5 #include "CoreMinimal.h"
 6 #include "Factories/Factory.h"
 7 #include "UserAsset.h"
12 #include "MyAssetFactory.generated.h"
13 
14 /**
15  * 
16  */
17 UCLASS()
18 class MYPROJECT14_API UMyAssetFactory : public UFactory
19 {
20     GENERATED_BODY()
21 
22 public:
23     UMyAssetFactory();
28     virtual UObject* FactoryCreateNew(UClass* InClass, UObject* InParent, FName InName, EObjectFlags Flags, UObject* Context, FFeedbackContext* Warn, FName CallingContext) override;
29 };

 

 

virtual UObject* FactoryCreateNew()是继承自父类的方法,用于工厂创建新的资源用的方法。

 

 

1 // Fill out your copyright notice in the Description page of Project Settings.
 2 
 3 
 4 #include "MyAssetFactory.h"
 5 
 6 UMyAssetFactory::UMyAssetFactory():UFactory(){
 7     
 8     bCreateNew = true;
 9     bEditAfterNew = false;
10     SupportedClass = UUserAsset::StaticClass();//工厂需要创建的实例类型
11 }
16 
17 UObject* UMyAssetFactory::FactoryCreateNew(UClass* InClass, UObject* InParent, FName InName, EObjectFlags Flags, UObject* Context, FFeedbackContext* Warn, FName CallingContext)
18 {
19 
20     auto MyAsset = NewObject<UUserAsset>(InParent, InClass, InName, Flags); //因为Asset是继承自UObject类的,所以这里用的是NewObject
21 
22     return MyAsset;
23 }

 

编译后效果如下图:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值