NavMesh not working on Hierarchical Instanced Static Mesh

So, I’ve been using Hierarchical Instanced Static Meshes to build landscape for a procedural world, and it appears that NavMesh doesn’t work with it.

I switched all the instances of my Hierarchical Instanced Static Meshes to regular Instanced Static Meshes, and the NavMesh volume worked immediately.

Is this a known/intentional limitation? Am I misusing the Hierarchical Instanced Static Mesh by making ground/floor tiles from it?

Thanks in advance!

For reference, I called the Hierarchical Instanced Meshes this way:


UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Path")
class USceneComponent* rootSC;

UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Path")
class UHierarchicalInstancedStaticMeshComponent* groundHIMesh;


rootSC = ObjectInitializer.CreateDefaultSubobject <USceneComponent>(this, TEXT("RootSceneComponent"));

//Set the root component
RootComponent = rootSC;

groundHIMesh = ObjectInitializer.CreateDefaultSubobject < UHierarchicalInstancedStaticMeshComponent >(this, TEXT("groundHInstancedStaticMesh"));

//more code

	FVector currentLocation(UMyStaticLibrary::convertIntToVector(i, FVector(map.width, map.height, 0)));
	//Add Core Instance
	FTransform newTrans= FTransform(FRotator(0, 0, 0), currentLocation, FVector(1, 1, 1));
	newTrans.SetLocation(currentLocation * tileSize);

	if (map.MapDataArray[i].isGround)

And to create the non-Hierarchical version, I replaced UHierarchicalInstancedStaticMeshComponent with UInstancedStaticMeshComponent.


Navigation mesh should just work fine with UHierarchicalInstancedStaticMeshComponent. Could you check that
UHierarchicalInstancedStaticMeshComponent has CollisionPreset set to BlockAll and _groundMesh has collision object?
Also you don’t need to call this->groundHIMesh->SetStaticMesh(_groundMesh); when you add a new instance, call it once outside of loop body.

Thanks for the SetStaticMesh tip.

I actually got this to work by adding AActor::UpdateComponentTransforms() at the end of the function.

I can’t seem to get the InstancedStaticMeshComponent to change back HierarchicalInstancedStaticMeshComponent Whenever I change the code back, unreal crashes on startup.