变灰色 给组件 设置变灰材质

好像只适用于小游戏,app无效

版本 2.3.2 同样的问题

const BUILTIN_MATERIAL = {
GRAY_SPRITE:null,
SPRITE:null,
}
//设置组件材质变灰
setComMaterial(com, active){
BUILTIN_MATERIAL.SPRITE = BUILTIN_MATERIAL.SPRITE || cc.Material.getBuiltinMaterial(cc.Material.BUILTIN_NAME.SPRITE);
BUILTIN_MATERIAL.GRAY_SPRITE = BUILTIN_MATERIAL.GRAY_SPRITE || cc.Material.getBuiltinMaterial(cc.Material.BUILTIN_NAME.GRAY_SPRITE);
com.setMaterial(0, active ? BUILTIN_MATERIAL.SPRITE : BUILTIN_MATERIAL.GRAY_SPRITE);
},

我是使用cc.Material.getBuiltinMaterial(cc.Material.BUILTIN_NAME.GRAY_SPRITE)来设置的,不需要再设置USE_TEXTURE,目前没发现有什么BUG

1赞

这个功能不香吗?

引擎button不是自带变灰吗

1赞

有时候需要置灰一些sprite总不能拖个button上去使用一下按钮的置灰效果吧这样做不优雅

node传label或是sprite target都没有赋值这个方法可能有点瑕疵喔

已修改,测试ok

3q 已修改 let target: any = node

感觉可以这么修改直接将node的子子孙孙都置灰

1赞

赞 可以这样

我这样写的,跟楼主不同点在于获取组件使用的cc.RenderComponent,就不用去区分Sprite或Label了。

1赞

这个6 从1.x兼容到2.4.3了

可惜不支持字体描边

字体描边你就在置灰的时候直接disable正常显示就enable就可以了

cocos自带灰色材质啊

经过这么多的代码就是将gray材质与2d-sprite材质相互替换到渲染组件里面去啊

用上 感谢各位大佬分享 已学习

mark-xia

有用,感谢