/// <summary>
    /// 创建所有的片
    /// </summary>
    private void CreatePieces()
    {
        GameObject piece_root = new GameObject("chunk_" + id_x + "_" + id_y);

        obj = piece_root;
        for (int i = 0; i < m_mesh_piece_num; i++)
        {
            for (int j = 0; j < m_mesh_piece_num; j++)
            {
                LodPiece   piece = m_piecees[j, i];
                GameObject obj   = MeshCreator.DrawMesh(piece.vers, piece.nors, piece.uvs, piece.indexes, m_chunk_mat, "piece_" + j + "_" + i);
                piece.mesh = obj.GetComponent <MeshFilter>().mesh;
                obj.AddComponent <MeshCollider>();
                obj.transform.SetParent(piece_root.transform);
            }
        }
        piece_root.transform.SetParent(ChunkManager.Instence.transform);
    }
    private GameObject CreatePiece(LodPiece piece, string name)
    {
        int each_offset = 1 << piece.LodLevel;
        int segment     = PieceMechSegment / each_offset;
        int ver_num     = (segment + 1) * (segment + 1);

        bool[]    isLevelBiger = new bool[] { false, false, false, false };
        Vector3[] vers         = new Vector3[ver_num];
        Vector3[] nors         = new Vector3[ver_num];
        Vector2[] uvs          = new Vector2[ver_num];
        int[]     indexes      = new int[segment * segment * 6];
        UpdatePieceLod(vers, nors, uvs, indexes, segment, piece, isLevelBiger);
        GameObject obj = MeshCreator.DrawMesh(vers, nors, uvs, indexes, PieceMat, name);

        piece.mesh                = obj.GetComponent <MeshFilter>().mesh;
        piece.vers                = vers;
        piece.nors                = nors;
        piece.uvs                 = uvs;
        piece.indexes             = indexes;
        piece.last_lod_level      = piece.LodLevel;
        piece.last_is_biger_level = isLevelBiger;
        obj.AddComponent <MeshCollider>();
        return(obj);
    }