调整菜单创建bagshape

This commit is contained in:
997146918 2025-08-29 18:09:13 +08:00
parent c8a551888d
commit bc36d855ac
4 changed files with 19 additions and 5 deletions

View File

@ -18,6 +18,13 @@ void FBagShapeAssetTypeAction::OpenAssetEditor(const TArray<UObject*>& InObjects
} }
uint32 FBagShapeAssetTypeAction::GetCategories()
{
//系统原有
//return EAssetTypeCategories::Gameplay;
return MyAssetCategory;
}
void FBagShapeAssetTypeAction::GetActions(const TArray<UObject*>& InObjects, struct FToolMenuSection& Section) void FBagShapeAssetTypeAction::GetActions(const TArray<UObject*>& InObjects, struct FToolMenuSection& Section)
{ {
FAssetTypeActions_Base::GetActions(InObjects, Section); FAssetTypeActions_Base::GetActions(InObjects, Section);

View File

@ -7,8 +7,6 @@
UBagShapeFactory::UBagShapeFactory() UBagShapeFactory::UBagShapeFactory()
{ {
bCreateNew = true;
bEditAfterNew = true;
SupportedClass = UBagShapeAsset::StaticClass(); SupportedClass = UBagShapeAsset::StaticClass();
} }

View File

@ -22,6 +22,7 @@ void FProjectFishEditorModule::ShutdownModule()
{ {
PropModule->UnregisterCustomPropertyTypeLayout("SkillDataConfig"); PropModule->UnregisterCustomPropertyTypeLayout("SkillDataConfig");
} }
//注销资源类型编辑器
UnregisterAssetTypeActions(); UnregisterAssetTypeActions();
} }
@ -29,9 +30,10 @@ void FProjectFishEditorModule::RegisterAssetTypeActions()
{ {
FAssetToolsModule& AssetToolsModule = FModuleManager::LoadModuleChecked<FAssetToolsModule>("AssetTools"); FAssetToolsModule& AssetToolsModule = FModuleManager::LoadModuleChecked<FAssetToolsModule>("AssetTools");
IAssetTools& AssetTools = AssetToolsModule.Get(); IAssetTools& AssetTools = AssetToolsModule.Get();
//注册自定义的菜单
EAssetTypeCategories::Type BoxShapeAssetCategory = AssetTools.RegisterAdvancedAssetCategory(FName(TEXT("Bag")), FText::FromString(TEXT("BagSystem")));
//BagShape //BagShape
TSharedRef<FAssetTypeActions_Base> BagShapeAction = MakeShareable(new FBagShapeAssetTypeAction); TSharedRef<FAssetTypeActions_Base> BagShapeAction = MakeShareable(new FBagShapeAssetTypeAction(BoxShapeAssetCategory));
AssetTools.RegisterAssetTypeActions(BagShapeAction); AssetTools.RegisterAssetTypeActions(BagShapeAction);
CreatedAssetTypeActions.Add(BagShapeAction); CreatedAssetTypeActions.Add(BagShapeAction);
} }

View File

@ -11,13 +11,20 @@
class PROJECTFISHEDITOR_API FBagShapeAssetTypeAction: public FAssetTypeActions_Base class PROJECTFISHEDITOR_API FBagShapeAssetTypeAction: public FAssetTypeActions_Base
{ {
public: public:
FBagShapeAssetTypeAction(EAssetTypeCategories::Type InAssetCategory)
{
MyAssetCategory = InAssetCategory;
}
virtual FText GetName() const override {return FText::FromString("Bag Shape");} virtual FText GetName() const override {return FText::FromString("Bag Shape");}
virtual FColor GetTypeColor() const override { return FColor(129, 196, 115); } virtual FColor GetTypeColor() const override { return FColor(129, 196, 115); }
virtual UClass* GetSupportedClass() const override; virtual UClass* GetSupportedClass() const override;
virtual void OpenAssetEditor(const TArray<UObject*>& InObjects, TSharedPtr<IToolkitHost> EditWithinLevelEditor = TSharedPtr<IToolkitHost>()) override; virtual void OpenAssetEditor(const TArray<UObject*>& InObjects, TSharedPtr<IToolkitHost> EditWithinLevelEditor = TSharedPtr<IToolkitHost>()) override;
virtual bool HasActions(const TArray<UObject*>& InObjects) const override {return true;} virtual bool HasActions(const TArray<UObject*>& InObjects) const override {return true;}
virtual uint32 GetCategories() override {return EAssetTypeCategories::Gameplay;} virtual uint32 GetCategories() override; ;
virtual void GetActions(const TArray<UObject*>& InObjects, struct FToolMenuSection& Section) override; virtual void GetActions(const TArray<UObject*>& InObjects, struct FToolMenuSection& Section) override;
virtual bool CanFilter() override {return true;} virtual bool CanFilter() override {return true;}
private:
EAssetTypeCategories::Type MyAssetCategory;
}; };