大佬救命!Mask导致第二个相机空白

放大镜节点,将画面渲染到指定的节点上
initCamera() {
let visibleRect = cc.view.getVisibleSize();
let texture = new cc.RenderTexture();
texture.initWithSize(visibleRect.width, visibleRect.height);
let spriteFrame = new cc.SpriteFrame();
spriteFrame.setTexture(texture);
this.mirrorCameraNode.getComponent(cc.Camera).targetTexture = texture;
this.tempCameraSpriteNode.getComponent(cc.Sprite).spriteFrame = spriteFrame;
this.tempCameraSpriteNode.scaleY = -1;
}

当场景里没有任何Mask组件时,“放大镜”相机可以正常工作,一旦再某个节点加了一个Mask组件,就导致“放大镜”里渲染那个Mask节点里的内容
情况1.若删除MaskA和MaskB,放大镜可以正常工作
情况2.若MaskA节点下Mask B节点下面 放大镜会渲染B

大佬救我!NewProject_5.zip (3.9 MB)

涩涩mark

mask重叠我记得有bug,放大镜用shader实现不行吗?

1赞

代码编辑器提示不存在类型“Game”上不存在属性“_renderContext”,但解决了问题,还是我不够仔细看文档,惭愧

2.4.x 没有这个代码示例了,但很神奇可以正常运行