const xrFrameSystem = wx.getXrFrameSystem();
const {rootShadow} = scene;
const faceElem = scene.createElement(xrFrameSystem.XRGLTF);
rootShadow.addChild(faceElem)
var assetInfo = {src:url, type:"gltf", assetId:"my-gltf"}
const {value: loadedModel} = await scene.assets.loadAsset(assetInfo)
const faceGLTF = faceElem.getComponent(xrFrameSystem.GLTF);
faceGLTF.setData({model: loadedModel})
page里有2个cube,然后底下有个地面。可以看到影子。
但是动态加载的GLTF没有影子。
gltf 组件上需要设置
cast-shadow
具体可以参考官方示例
是这样吗?也没有效果啊,const faceElem = scene.createElement(xrFrameSystem.XRGLTF, {'cast-shadow':true});
包括这样也是:const faceGLTF = faceElem.getComponent(xrFrameSystem.GLTF);
faceGLTF.setData({model: loadedModel, 'cast-shadow':true})
其中的model参数生效了,但是cast-shadow没效果。
我的开发环境,调试基础库是3.4.5
const faceElem = scene.createElement(xrFrameSystem.XRGLTF, {'cast-shadow':true});
可以保证有影子。
之前出问题是因为后面的代码对材质的alphaMode设置成BLEND。