From bc36d855ac549fc43417f0467044c69a2a1a0a04 Mon Sep 17 00:00:00 2001 From: 997146918 <997146918@qq.com> Date: Fri, 29 Aug 2025 18:09:13 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=8F=9C=E5=8D=95=E5=88=9B?= =?UTF-8?q?=E5=BB=BAbagshape?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Private/AssetActions/BagShapeAssetTypeAction.cpp | 7 +++++++ .../Private/Factory/BagShapeFactory.cpp | 2 -- .../ProjectFishEditor/Private/ProjectFishEditor.cpp | 6 ++++-- .../Public/AssetActions/BagShapeAssetTypeAction.h | 9 ++++++++- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/ProjectFish/Source/ProjectFishEditor/Private/AssetActions/BagShapeAssetTypeAction.cpp b/ProjectFish/Source/ProjectFishEditor/Private/AssetActions/BagShapeAssetTypeAction.cpp index 12701c5..4182010 100644 --- a/ProjectFish/Source/ProjectFishEditor/Private/AssetActions/BagShapeAssetTypeAction.cpp +++ b/ProjectFish/Source/ProjectFishEditor/Private/AssetActions/BagShapeAssetTypeAction.cpp @@ -18,6 +18,13 @@ void FBagShapeAssetTypeAction::OpenAssetEditor(const TArray& InObjects } +uint32 FBagShapeAssetTypeAction::GetCategories() +{ + //系统原有 + //return EAssetTypeCategories::Gameplay; + return MyAssetCategory; +} + void FBagShapeAssetTypeAction::GetActions(const TArray& InObjects, struct FToolMenuSection& Section) { FAssetTypeActions_Base::GetActions(InObjects, Section); diff --git a/ProjectFish/Source/ProjectFishEditor/Private/Factory/BagShapeFactory.cpp b/ProjectFish/Source/ProjectFishEditor/Private/Factory/BagShapeFactory.cpp index aab5dce..68291f3 100644 --- a/ProjectFish/Source/ProjectFishEditor/Private/Factory/BagShapeFactory.cpp +++ b/ProjectFish/Source/ProjectFishEditor/Private/Factory/BagShapeFactory.cpp @@ -7,8 +7,6 @@ UBagShapeFactory::UBagShapeFactory() { - bCreateNew = true; - bEditAfterNew = true; SupportedClass = UBagShapeAsset::StaticClass(); } diff --git a/ProjectFish/Source/ProjectFishEditor/Private/ProjectFishEditor.cpp b/ProjectFish/Source/ProjectFishEditor/Private/ProjectFishEditor.cpp index c701c28..49ed01d 100644 --- a/ProjectFish/Source/ProjectFishEditor/Private/ProjectFishEditor.cpp +++ b/ProjectFish/Source/ProjectFishEditor/Private/ProjectFishEditor.cpp @@ -22,6 +22,7 @@ void FProjectFishEditorModule::ShutdownModule() { PropModule->UnregisterCustomPropertyTypeLayout("SkillDataConfig"); } + //注销资源类型编辑器 UnregisterAssetTypeActions(); } @@ -29,9 +30,10 @@ void FProjectFishEditorModule::RegisterAssetTypeActions() { FAssetToolsModule& AssetToolsModule = FModuleManager::LoadModuleChecked("AssetTools"); IAssetTools& AssetTools = AssetToolsModule.Get(); - + //注册自定义的菜单 + EAssetTypeCategories::Type BoxShapeAssetCategory = AssetTools.RegisterAdvancedAssetCategory(FName(TEXT("Bag")), FText::FromString(TEXT("BagSystem"))); //BagShape - TSharedRef BagShapeAction = MakeShareable(new FBagShapeAssetTypeAction); + TSharedRef BagShapeAction = MakeShareable(new FBagShapeAssetTypeAction(BoxShapeAssetCategory)); AssetTools.RegisterAssetTypeActions(BagShapeAction); CreatedAssetTypeActions.Add(BagShapeAction); } diff --git a/ProjectFish/Source/ProjectFishEditor/Public/AssetActions/BagShapeAssetTypeAction.h b/ProjectFish/Source/ProjectFishEditor/Public/AssetActions/BagShapeAssetTypeAction.h index f7ce20a..3379c16 100644 --- a/ProjectFish/Source/ProjectFishEditor/Public/AssetActions/BagShapeAssetTypeAction.h +++ b/ProjectFish/Source/ProjectFishEditor/Public/AssetActions/BagShapeAssetTypeAction.h @@ -11,13 +11,20 @@ class PROJECTFISHEDITOR_API FBagShapeAssetTypeAction: public FAssetTypeActions_Base { public: + FBagShapeAssetTypeAction(EAssetTypeCategories::Type InAssetCategory) + { + MyAssetCategory = InAssetCategory; + } virtual FText GetName() const override {return FText::FromString("Bag Shape");} virtual FColor GetTypeColor() const override { return FColor(129, 196, 115); } virtual UClass* GetSupportedClass() const override; virtual void OpenAssetEditor(const TArray& InObjects, TSharedPtr EditWithinLevelEditor = TSharedPtr()) override; virtual bool HasActions(const TArray& InObjects) const override {return true;} - virtual uint32 GetCategories() override {return EAssetTypeCategories::Gameplay;} + virtual uint32 GetCategories() override; ; virtual void GetActions(const TArray& InObjects, struct FToolMenuSection& Section) override; virtual bool CanFilter() override {return true;} + +private: + EAssetTypeCategories::Type MyAssetCategory; };