ISM在show player collision时不显示碰撞

在Editor上想要查看碰撞,但是ISM的碰撞在Show player collision不显示

[Image Removed]

[Image Removed]

重现步骤
ISM拖到场景viewmode选择show player collision

[Content removed]

这个问答里给的参考代码并不生效,show player collision时断点没有走到对应方法里去。

您好, r.InstancedStaticMeshes.FetchInstanceCountFromScene=0 设置了吗?代码之前是试过可行的

啊。。不太可能不进GDME啊,除非是relevance被过滤掉了,但这个跟Collision View下显示效果不一样是另外一个问题。

可以在一个新建的map里试一下么?

[Image Removed]hi按照你的方式代码侧强制将此Cvar设为0,player collision断点依然没进入FInstancedStaticMeshSceneProxy::GetDynamicMeshElements方法内部,我先试试其他方式看看

新建了个map也还是没进入ISM的GDME😰

不过我在NaniteResoureces的GDME新加的这段代码在新map里生效了,player collision可以显示ISM的碰撞

[Image Removed]

哦哦,是nanite mesh

这样应该就可以了

SMBodySetup->AggGeom.GetAggGeom这个接口是处理简单碰撞,player collision有啥方式可以显示ISM的复杂碰撞吗?

您好,在FSceneProxy::GetDynamicMeshElements里面,有个GetCollisionMeshElement 可以获取MeshBatch,但是目前只画了一个对象,所以会报错(设置 showflag.collision 1),instance数量为1,实际是多个

还需要获得一个InstanceVertexFactory来绘制这个MeshBatch,不过目前没有创建这个VF,不太好改

嗯我这边获取instance,然后对bodysetup的TriMeshGeometries的Vertices做transform变换,最后调用接口FDynamicMeshBuilder::GetMesh加入FMeshElementCollector,这种方式可以满足显示ISM复杂碰撞的需求