经美术组要求开发了一个检查美术资源的插件,获取资源的路径并根据路径中的文件名判断这个资源是否应该出现在当前关卡中。
UWorld* World = GCurrentLevelEditingViewportClient->GetWorld();
if (World)
{
// 获取当前关卡中所有贴图和材质,并检查他们的路径
for (TObjectIterator<UTexture2D> Iter; Iter; ++Iter)
{
if (UTexture2D* Tex = *Iter)
{
CheckPath(Tex);
}
}
for (TObjectIterator<UStaticMeshComponent> Iter; Iter; ++Iter)
{
if (UStaticMeshComponent* comp = *Iter)
{
CheckPath(comp);
}
}
}
继承于UObject的对象类型可以用TObjectIterator迭代器来遍历,需注意在编辑器中打开的资源也会被找到:
当前已满足基本功能需求,但是还没找到方法遍历特效资源。