首页 > Unity > Bug > CollisionMeshData non-accessible
2016
09-25

CollisionMeshData non-accessible

最近遇到一个问题:

某块地形(使用MeshCollider)在iOS设备上碰撞没有效果,并且会报错:CollisionMeshData couldn’t be created because the mesh has been marked as non-accessible。

研究了下源码发现:

如果没有勾选PlayerSettings->Prebake Collision Meshes的话,会去生成这个这个Mesh的碰撞数据,要生成碰撞数据时需要访问这个Mesh的顶点数据,发现拿不到顶点数据就会报上面的错误。

这里主要有两点值得注意:

1.当没有勾选Prebake Collision Meshes时,unity会去动态生成Mesh的碰撞数据,勾选了就解决这个问题了。

2.拿不到Mesh的顶点数据,是因为Mesh的导入设置里Read/Write Enabled没有勾选,勾选了也能解决问题。

但是如果勾选Read/Write Enabled的话会导致额外内存占用,而且运行时生成碰撞数据比提前创建好更耗一些,因此建议勾选Prebake Collision Meshes选项。

Unity版本:5.4

 

最后编辑:
作者:maosongliang
这个作者貌似有点懒,什么都没有留下。