原生上mesh的bug

2.4.3版,cc.Mesh的init函数如下:

    init (vertexFormat, vertexCount, dynamic = false, index = 0) {
        let data = new Uint8Array(vertexFormat._bytes * vertexCount);
        let meshData = new MeshData();
        meshData.vData = data;
        meshData.vfm = vertexFormat;
        meshData.vDirty = true;
        meshData.canBatch = this._canVertexFormatBatch(vertexFormat);

        if (!(CC_JSB && CC_NATIVERENDERER)) {
            let vb = new gfx.VertexBuffer(
                renderer.device,
                vertexFormat,
                dynamic ? gfx.USAGE_DYNAMIC : gfx.USAGE_STATIC,
                data,
            );

            meshData.vb = vb; 
            this._subMeshes[index] = new InputAssembler(meshData.vb);
        }

        let oldSubData = this._subDatas[index];
        if (oldSubData) {
            if (oldSubData.vb) {
                oldSubData.vb.destroy();
            }
            if (oldSubData.ib) {
                oldSubData.ib.destroy();
            }
        }

        this._subDatas[index] = meshData;
        
        this.loaded = true;
        this.emit('load');
        this.emit('init-format');
    }

重点看if (!(CC_JSB && CC_NATIVERENDERER))代码块,这里是否缺少个else,不然原生上手动创建的Mesh不就少了_subMeshes[index]的子网格么?