当Mesh没有厚度时,MeshCollider不会生成有效的碰撞区域,在Scene视图中看不到绿框。
需要使用BoxCollider
先计算mesh的包围盒尺寸
在此基础上给它加一个微小的厚度
Bounds bounds = new Bounds();
foreach (Vector3 vertex in mesh.vertices)
{
bounds.Encapsulate(vertex);
}
BoxCollider boxCollider = parkingSlot.AddComponent<BoxCollider>();
boxCollider.center = bounds.center;
boxCollider.size = bounds.size + new Vector3(0, 0.01f, 0); // 赋予微小高度