【2.3.1】 Material 动态切换贴图 出现报错?目前版本是否支持呢?

尝试了 这两种设置 都无法生效。
material.setProperty(“mainTexture”, tex); 无效果

material.setProperty(“diffuseTexture”, tex); 出现报错:

TypeError: value.getImpl is not a functionpass.js:169:39
setProperty pass.js:169
_setPassProperty effect-base.ts:51
setProperty effect-base.ts:62
setProperty CCMaterial.js:222
anonymous cocos2d-js-for-preview.js line 24027 > Function:3
createInvokeImpl component-scheduler.js:224
invoke component-scheduler.js:140
startPhase component-scheduler.js:485
mainLoop CCDirector.js:984
callback CCGame.js:651

请求大神协助。

已经发现为什么不可以了

material.setProperty(‘diffuseTexture’, tex)

引擎提供了两种定义方式

方式1:
tex0:cc.Texture2D

方式2
tex0:{
type: cc.Texture2D, // use ‘type:’ to define Texture2D object directly
default: null, // object’s default value is null
},

方式1 无法支持动态更换图片
方式2 支持动态更换

1赞

我也遇到同样的问题,修改以后还是同样报错。请问你这边是怎么修改的呢?

我原来写的是
mat.setProperty(‘texture’, myTexture);

改成下面还是同样报错:
mat.setProperty(‘texture’, {type:myTexture, default: null});

使用方式2