同样的代码,能在浏览器上跑,但是在模拟机上没有反应
大致猜测问题出处为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为空的问题。
确实还可以哦
