查看: 530|回复: 7

建立自己的客製化Asset

[复制链接]

1

主题

342

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
75866
发表于 2015-9-30 21:31:25 | 显示全部楼层 |阅读模式




摘自
http://www.wraiyth.com/p=209
很多人常常會需要客製化自己的 Asset 進入 Content Browser 並儲存。
首先這個方法只針對繼承UObject的Class。
假設你的Class叫 MyObject
那你的MyObject.h 大概會長這樣#pragma once#include MyObject.generated.h UCLASS(Blueprintable)class UMyObject : public UObject{  GENERATED_UCLASS_BODY()public:  UPROPERTY(EditAnywhere, Category = My Object Properties )  FString Name;};复制代码
MyObject.cpp
長這樣#include MyObject.h  UMyObject::UMyObject(const FObjectInitializer ObjectInitializer)  : Super(ObjectInitializer){}复制代码
這時你只需要建一個工廠 Factory
不意外的話叫 MyObjectFactory
所以 MyObjectFactory.h 長這樣#pragma once#include UnrealEd.h #include MyObjectFactory.generated.h    UCLASS()class UMyObjectFactory : public UFactory{  GENERATED_UCLASS_BODY()   // UFactory interface  virtual UObject* FactoryCreateNew(UClass* Class, UObject* InParent, FName Name, EObjectFlags Flags, UObject* Context, FFeedbackContext* Warn) override;  // End of UFactory interface};复制代码
MyObjectFactory.cpp 長這樣
// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved. #include MyObjectFactory.h  #define LOCTEXT_NAMESPACE MyObject  /////////////////////////////////////////////////////// UMyObjectFactory UMyObjectFactory::UMyObjectFactory(const FObjectInitializer ObjectInitializer)  : Super(ObjectInitializer){  bCreateNew = true;  bEditAfterNew = true;  SupportedClass = UMyObject::StaticClass();} UObject* UMyObjectFactory::FactoryCreateNew(UClass* Class, UObject* InParent, FName Name, EObjectFlags Flags, UObject* Context, FFeedbackContext* Warn){  UMyObject* NewObjectAsset = ConstructObject(Class, InParent, Name, Flags | RF_Transactional);  return NewObjectAsset;} #undef LOCTEXT_NAMESPACE复制代码
基本上就把 UMyObject 換成你的Class就可以了。
但實際使用上面會有一個問題,你還是沒有辨法建立Actor的Asset,
只能把自己的Actor拉進場景之後編輯,不能在Content Browser 中編輯,
這個問題我後來看Paper2D的源碼解決了,
不過太複雜了,詳細有空再解說。
要用轉換成Actor拉入場景
除了原來的兩個class
還要加入
XXXcomponent
XXXactor
XXXactorfactory
需要自定義的縮圖就加入
XXXThumbnailRenderer
回复

使用道具 举报

0

主题

851

帖子

2810

积分

vip会员

Rank: 1

积分
2810
发表于 2015-10-12 23:45:46 | 显示全部楼层
路过
回复 支持 反对

使用道具 举报

0

主题

845

帖子

2780

积分

vip会员

Rank: 1

积分
2780
发表于 2015-10-12 23:45:48 | 显示全部楼层
不错不错 我喜欢看   
回复 支持 反对

使用道具 举报

0

主题

845

帖子

2811

积分

vip会员

Rank: 1

积分
2811
发表于 2015-10-12 23:45:47 | 显示全部楼层
没有天生的信心,只有不断培养的信心     
回复 支持 反对

使用道具 举报

0

主题

852

帖子

2784

积分

vip会员

Rank: 1

积分
2784
发表于 2015-10-13 02:20:51 | 显示全部楼层
欲望以提升热忱,毅力以磨平高山   
回复 支持 反对

使用道具 举报

0

主题

889

帖子

2900

积分

vip会员

Rank: 1

积分
2900
发表于 2015-10-13 08:32:30 | 显示全部楼层
来上茶      
回复 支持 反对

使用道具 举报

0

主题

851

帖子

2780

积分

vip会员

Rank: 1

积分
2780
发表于 2015-10-13 12:58:15 | 显示全部楼层
活着,以死的姿态……   
回复 支持 反对

使用道具 举报

0

主题

850

帖子

2815

积分

vip会员

Rank: 1

积分
2815
发表于 2015-10-13 13:17:17 | 显示全部楼层
我毫不犹豫地把楼主的这个帖子收藏了   
回复 支持 反对

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | enginedx注册

本版积分规则

 
 



邮件留言:


 
返回顶部