发现疑似Toggle的一个bug

我想实现Toggle在禁用状态下,变为灰色的功能
试过Toggle自带的disabledSprite,拖入图片后,发现禁用toggle并没有显示disabledSprite的图片。(这是一点)
然后我试着用代码动态更改Toggle子节点Background的spriteFrame,发现也是无法更改的,这是第二点,以下是第二点的代码:
let child = self.gdToggle[11].node.children[0];
cc.log(“name=” + child.name);
let sprite = child.getComponent(cc.Sprite);
sprite.SpriteFrame = self.disableSpr;
self.gdToggle[11].interactable = false;

ccc version:v2.0.5

还有一点。enableAutoGrayEffect的介绍如下:
enableAutoGrayEffect Boolean 如果这个标记为 true,当 button 的 interactable 属性为 false 的时候,会使用内置 shader 让 button 的 target 节点的 sprite 组件变灰。

但事实是,我勾选enableAutoGrayEffect为true,在toggle禁用时,只有checkmark的图片变灰,background节点的图片并没有变灰,按照定义应该checkmark和background的图片都变灰的。

child.getComponent(cc.Sprite).setState(1);

谢谢,该方法有效

toggle 有一个target。
你说的变化效果是在target上生效的。
默认target是checkmark
你把他改成toggle本身就行了。

没有变灰是因为默认创建的toggle组件上不带sprite组件,加一个sprite控件,再试一下,应该就可以变灰了

大神,你最后怎么解决的啊,我也碰到了