当前位置: 首页 > news >正文

贵州企业展示型网站建设广告外链购买平台

贵州企业展示型网站建设,广告外链购买平台,西安做搭建网站,楚雄市城乡建设局网站目录 需要考虑的问题 重定向的修复函数 代码: 删除无引用资产 代码 需要添加的头文件和模块 在我们删除资产的时候,会发现,有些资产在删除的时候会出现有被什么什么引用,还有的是没有被引用。 而我们如果直接选择一片去进行…

目录

 需要考虑的问题

重定向的修复函数

代码:

删除无引用资产

代码

需要添加的头文件和模块


在我们删除资产的时候,会发现,有些资产在删除的时候会出现有被什么什么引用,还有的是没有被引用。

而我们如果直接选择一片去进行删除的话,那么会导致看到很多有引用和没有引用的出现。

现在我们需要将没有引用的全部删除,而有引用的全部留下,做一个脚本化资产行为

 需要考虑的问题

1.首先我们会选择一堆资产,如何从资产中,找到没有被引用的资产,然后进行删除。

2.我们要考虑到假如资产迁移后没有修复重定向的情况,所以要在删除无引用资产前需要对重定向器进行全局的一个修复。

3.模块问题,我们修复重定向器的时候,肯定会访问各种各样不同的模块,而对此我们需要进行一个添加。

重定向的修复函数

首先我们做一个函数,这个函数的作用就是在删除资产之前对全局进行一个重定向器的修复,以防止不小心删除了没有修复重定向器的有引用资产

所以这个函数我决定放在private里面使用。

代码:

private://修复重定向器void FixUpRedirectors();

首先是加载AssetRegistry模块,然后创建一个过滤器,并对其中进行设置。

之后将通过这个遍历器的资产放入数组中去,再继续遍历,然后再继续获取指定过滤条件的资产信息。

将其中加入到需要修复的数组中去。

继续加载模块。

最后进行修复。

FAssetRegistryModule模块:AssetRegistry模块用于管理项目中的资产信息,包括资产的元数据、引用关系、依赖关系等。它的主要作用是提供对项目中的资产进行查询和操作的接口。

FAssetToolsModule模块:AssetTools模块用于执行与资产操作相关的功能,如创建、删除、重命名等。它提供了一系列的方法来管理项目中的资产。

void UQuicklyAssetAction::FixUpRedirectors()
{TArray<UObjectRedirector*> RedirectorsToFixArray;//加载AssetRegistry模块FAssetRegistryModule& AssetRegistryModule =FModuleManager::Get().LoadModuleChecked<FAssetRegistryModule>(TEXT("AssetRegistry"));//创建过滤器FARFilter Filter;Filter.bRecursivePaths = true;//遍历子文件Filter.PackagePaths.Emplace("/Game");//遍历 "/Game" 目录下的文件Filter.ClassNames.Emplace("ObjectRedirector");//类名为 "ObjectRedirector" 的文件//获取满足条件的文件到OutRedirectors中TArray<FAssetData> OutRedirectors;AssetRegistryModule.Get().GetAssets(Filter, OutRedirectors);//将满足条件的文件添加到 RedirectorsToFixArray 数组中for (const FAssetData& RedirectorData:OutRedirectors){if (UObjectRedirector* RedirectorToFix=Cast<UObjectRedirector>(RedirectorData.GetAsset())){RedirectorsToFixArray.Add(RedirectorToFix);}}//加载 AssetTools 模块FAssetToolsModule& AssetToolsModule = FModuleManager::LoadModuleChecked<FAssetToolsModule>(TEXT("AssetTools"));//修复重定向器AssetToolsModule.Get().FixupReferencers(RedirectorsToFixArray);
}

删除无引用资产

在完成了修复重定向的函数后,我们来进行真正的无引用资产的删除函数制作:

其实其中的方法很简单,主要的功能和前面两章大差不差,只不过添加了对资产重定向的修复。

代码

void UQuicklyAssetAction::RemoveNoRefAsset()
{TArray<FAssetData> SelectedAssetsData = UEditorUtilityLibrary::GetSelectedAssetData();TArray<FAssetData> NoRefAssetData;//修复重定向器FixUpRedirectors();for (const FAssetData& SelectedAssetDate:SelectedAssetsData){//输入资产的路径,获取对资产的引用,保存在数组里面TArray<FString> AssetRefs = UEditorAssetLibrary::FindPackageReferencersForAsset(SelectedAssetDate.ObjectPath.ToString());//AssetRefs的数量为0,则表示没有引用,添加到要删除的数组里面,之后统一进行删除if (AssetRefs.Num()==0){NoRefAssetData.Add(SelectedAssetDate);}}//判断未引用的资产数量是否为0if (NoRefAssetData.Num()==0){ShowMsgDialog(EAppMsgType::Ok, "No asset with a 0 reference was found among the selected assets.", false);return;}//#include "ObjectTools.h"添加头文件,删除资产const int32 DeleteAssetNum= ObjectTools::DeleteAssets(NoRefAssetData);if (DeleteAssetNum>0){ShowNotifyInfo("Description The asset referenced by 0 is deleted successfully. A total of" + FString::FromInt(DeleteAssetNum) + "files are deleted.", 7);}
}

需要添加的头文件和模块

http://www.sczhlp.com/news/39235/

相关文章:

  • 民非企业网站建设费怎么记账如何做好平台推广
  • 如何建设和优化一个网站搜索关键词分析
  • 即墨做网站的seo系统培训
  • 兖州建设局网站百搜网络科技有限公司
  • 中卫网站建设公司营销推广方法有哪些
  • 做网站哪一部分用到Java广州百度提升优化
  • ppt做视频的模板下载网站有哪些推广的几种方式
  • 九江网站建设公司宁波网站建设公司哪家好
  • ps网页设计教程及素材郑州有没有厉害的seo
  • 多产品网站怎么做企业网站网站快速排名优化哪家好
  • 构建动态网站营销推广方式都有哪些
  • 语音识别技术在英语学习中的创新应用
  • Earth Preta混合合法与恶意组件规避检测技术分析
  • 辛集网站建设手机网页设计制作网站
  • 资源类网站怎么做的营销推广策划方案范文
  • 静态网站怎么做电子商务seo
  • 网站设计与制作是什么专业如何网页优化
  • 做外贸推广的网站有哪些什么推广方式能快速引流
  • 深圳装修公司排名前十seo值怎么提高
  • 哪家做的濮阳网站建设网站建设多少钱
  • 中山网站推广风云榜百度
  • 淘宝客做网站推广长沙seo网络公司
  • 网站收录后然后怎么做seo如何挖掘关键词
  • 很多网站开发没有框架如何制作的seo优化实训总结
  • thinkphp做视频网站seo基础教程
  • 想花钱做网站怎么做无锡做网站的公司
  • Wordpress始于四川二级站seo整站优化排名
  • 画册做的比较好的网站凡科建站下载
  • 个人性质的网站备案容易查营销的主要目的有哪些
  • 贵阳微信网站制作百度关键词排名推广话术