Creator 2.2.1 3D射线网格检测在模拟机和浏览器上的不一致

同样的代码,能在浏览器上跑,但是在模拟机上没有反应
大致猜测问题出处为return cc.geomUtils.intersect.rayMesh(modelRay, meshRenderer.meshmesh);中 meshRenderer.mesh的subMeshes
模拟机上的subMeshes的数组为空

但是浏览器中的subMeshes有值

请教一下解决方法!感谢

同求解决方案啊 哎没人 说

我这边的解决的是暂时不做 网格检测 这样可以 但是没那么准确 我的游戏上要求还行

const BYTES_PER_INDEX = {
[cc.gfx.INDEX_FMT_UINT8]: 1,
[cc.gfx.INDEX_FMT_UINT16]: 2,
[cc.gfx.INDEX_FMT_UINT32]: 4,
}

cc.Mesh.prototype.initCustomSubMeshes = function (index) {
this._subMeshes.length = 0;

let renderer = cc.renderer;
let gfx = cc.gfx;

let ibData = this._subDatas[index||0].iData;
let vbData = this._subDatas[index||0].vData;
let gfxVFmt = this._subDatas[index||0].vfm;

let vbBuffer = new gfx.VertexBuffer(
    renderer.device,
    gfxVFmt,
    gfx.USAGE_STATIC,
    vbData,
    vbData.byteLength / gfxVFmt._bytes
);

let ibBuffer = new gfx.IndexBuffer(
    renderer.device,
    cc.gfx.INDEX_FMT_UINT16,
    gfx.USAGE_STATIC,
    ibData,
    ibData.byteLength /BYTES_PER_INDEX[cc.gfx.INDEX_FMT_UINT16]
);

// create sub meshes
this._subMeshes.push(new renderer.InputAssembler(vbBuffer, ibBuffer));

}

getComponent(cc.MeshRenderer).mesh.initCustomSubMeshes() 可以解决在native上_submeshs为空的问题。

确实还可以哦