StaticLoad problems - failing to find file

Thank you for the well thought out reply, and I don’t blame you for copy-pasting. For some reason I have it in my mind using FConstructorStatics and storing references is a lot of overhead, given I have 36 objects will all be storing those references. Is the best option really to have the logic for preloading and deciding the meshes and materials in a manager class?

So I suppose that part is still in question. That code for instance would be


struct FConstructorStatics
	{
		ConstructorHelpers::FObjectFinderOptional<UStaticMesh> BenchMesh;
		ConstructorHelpers::FObjectFinderOptional<UStaticMesh> GrassMesh;
		ConstructorHelpers::FObjectFinderOptional<UStaticMesh> RockMesh;
		ConstructorHelpers::FObjectFinderOptional<UMaterialInstance> ObjectMaterial;
		FConstructorStatics()
			: BenchMesh(TEXT("/Game/Meshes/Park/Mesh_Bench.Mesh_Bench"))
			, GrassMesh(TEXT("/Game/Meshes/Park/Mesh_Grass1.Mesh_Grass1"))
			, RockMesh(TEXT("/Game/Meshes/Park/Mesh_Rock1.Mesh_Rock1"))
			, ObjectMaterial(TEXT("/Game/Materials/Park/MI_Park.MI_Park"))
		{
		}
	};
	static FConstructorStatics ConstructorStatics;
	BenchMesh = ConstructorStatics.BenchMesh.Get();
	GrassMesh = ConstructorStatics.GrassMesh.Get();
	RockMesh = ConstructorStatics.RockMesh.Get();
	int objectId = FMath::RandRange(0, 2);
	switch (objectId)
	{
	case 0:
		ObjectMesh->SetStaticMesh(BenchMesh);
		break;
	// ETC
	}


But then I end up with lots of cruft references (from the header file)



	UPROPERTY()
	class UStaticMeshComponent* ObjectMesh;

	UPROPERTY()
	class UStaticMesh* BenchMesh;

	UPROPERTY()
	class UStaticMesh* GrassMesh;

	UPROPERTY()
	class UStaticMesh* RockMesh;

	UPROPERTY()
	class UMaterialInstance* ObjectMaterial;


But yes doing it this way did resolve my issue!