请问代码创建的材质可以设置贴图吗?

image

请问我要如何在代码设置DIFFUSE_TEXTURE呢?Cocos版本是2.4.4

你这代码里不是有设置材质属性的方法吗,setProperty(diffuseTexture)

这个我试了,设置已有的材质是可以的,但是我这个是代码创建的材质,好像不行啊,是不是我代码写的有问题,请问能指导下吗?这个里面的tex是有值的

this.tex是怎么创建的?

在初始化的时候动态加载的,我打印了,是有的,cc.Texture2D

材质资源 · Cocos Creator
不要用共享材质,用材质变体试试

就是返回值不用cc.Material,用cc.MaterialVariant是吧,我试过也是不可以的,那个贴图始终设置不上去?

const mat = cc.Material.createWithBuiltin('unlit');
mat.setProperty('diffuseColor', new cc.Color().fromHEX('#00ff00'));
mat.define('USE_DIFFUSE_TEXTURE', 1);
mat.setProperty('diffuseTexture', this.tex);

把这个图片定义的打开才可以

0dc45011c2ab320c160cd197fd19322

你可以用spector.js看看编译的shader,就可以看出问题了

感谢,可以了,我在面板上创建的材质看到这个USE_DIFFUSE_TEXTURE,是要勾选才能设置,就是不知道代码里面怎么设置,原来是这么设置的,感谢感谢