发现mask组件BUG。求解决

Creator 版本:2.0.7

目标平台: chrome / Android

demo如下:test-demo.zip (609.4 KB)

重现方式如下:
1.场景编辑器中添加一个空节点
2.给此节点加一个mask组件,勾选inverted
3.在此节点上加一个精灵图片,大小为7201500(设计分辨率为7201280,为了适配)
4.在chrome浏览器内Responsive先跑7201100
5.游戏加载后更改Responsive为720
1200,顶部出现白边

希望还是全屏灰色遮罩。

BUG图如下:

希望如下:

因为Android手机有呼出和关闭底部状态栏的操作,此时会更改屏幕尺寸,所以发现的此问题。
黑色遮罩本身是大于全屏的,感觉是引擎组为了优化,当用到mask组件并勾选inverted的时候,第一次渲染完后把屏幕外的内容裁剪掉了,导致更改浏览器尺寸时,出现此问题 。

你就自己不能把size适配下吗?这不是引擎的BUG, 这是你的bug

我试过了不是适配问题,size我扩大过了 没用。再有,你自己没有尝试过的情况下,不要随便回复。

我也出现过这个问题,我这边的处理是适配背景的节点,然后在该节点上监听 SIZE_CHANGE 事件,在事件的回调中按照背景节点的大小重新设置蒙版节点的大小。

不是尺寸问题,整个流程遮罩节点的size没有改变

实际上就是尺寸问题,你把下面这段代码放到脚本里,把蒙版应用上,效果就对了。

@property(cc.Node)
bg: cc.Node = null;

resizeFunc : (event: cc.Event.EventCustom) => void = null;

onLoad() {
this.resizeFunc = (event: cc.Event.EventCustom) => {
this.bg.width = this.node.width;
this.bg.height = this.node.height;
};

this.node.on(cc.Node.EventType.SIZE_CHANGED, this.resizeFunc, this);

}

不是适配问题。。。我试过了 更改浏览器尺寸后,并没有触发SIZE_CHANGED。我打印遮罩尺寸还是720*1500。肯定是被裁减的原因

屏幕外裁剪,导致怎么变换尺寸都无效,求官方人员给一个解决方案。。。

求官方给个回复,就算不予解决也行,让我明确这是cocos的BUG,再考虑其他解决方案。

1赞