I am new to programming in unreal and I was trying to make a project to change materials from a variety of meshs through widget interface, and to do that i wanted to create an array with all the materials in the project, but i couldn’t do it with blueprints alone(adding each materials manually to an array would be to much work). So i tried to create the array through a c++ bp function library and found that an UObjectLibrary could load assets through the LoadAssetDataFromPath function and used:
auto ObjectLibrary = UObjectLibrary::CreateLibrary(UWorld::StaticClass(), false, true);
int a = ObjectLibrary->GetAssetDataCount();
UE_LOG(LogTemp, Warning, TEXT(“DataCount,%d OR %d”), a , AssetsData.Num());
I tried using the “_C” suffix attached to my path as well as the "Material ‘/Game/Materials/Material_01.Material_01’ " copied reference path that unreal gives me (unreal interrupts the program with this alternative) and also using an instanced material, but my AssetsData array was still empty after that.
I tried using LoadObject function but also to no avail.
Is there any other way to get the materials i need in c++ so i can add them to an array?