材质 builtin-2d-sprite 使用后变成白色

  • Creator 版本:2.3.3

  • 目标平台: web

我想变灰色之后 ,然后再次变回原来的颜色,可能是使用方式不对,出现了白色的情况。
除了保存之前的材质信息,直接新建材质要怎么操作?

ts 示例代码,点击按钮进行切换变换 材质。

public changeEffect(active: boolean): void {
    if (active) {
        //this.newMaterial = this.preMaterial;
        this.newMaterial = cc.Material.createWithBuiltin(cc.Material.BUILTIN_NAME.SPRITE, 0);
    } else {
        this.newMaterial = cc.Material.createWithBuiltin(cc.Material.BUILTIN_NAME.GRAY_SPRITE, 0);
    }
    this.node.getComponent(cc.Sprite).setMaterial(0, this.newMaterial);
}


你需要在builtin-2d-sprite的材质加上这个
this.newMaterial.define(“USE_TEXTURE”, true, 0);

1赞

是这样的,谢谢!

this.newMaterial = cc.Material.getBuiltinMaterial(cc.Material.BUILTIN_NAME.SPRITE);
这样也成吧。

//正常颜色
newMaterial = cc.Material.createWithBuiltin("2d-sprite", 0);
//灰色
newMaterial = cc.Material.createWithBuiltin("2d-gray-sprite", 0);

btnSprite.setMaterial(0, newMaterial);