微信小游戏 安卓真机 RenderTexture重复截图时 没有 释放纹理

  • Creator 版本:2.2.1

  • 目标平台: Android 微信小游戏

  • 重现方式:使用 安卓手机 通过 微信开发工具打开demo

实现的方式是,使用 camera 进程截图,使用 rendertexture 创建对应的 spriteFrame,再替换对应节点上的 cc.Spite 组件的 spriteFrame。PC 和 IOS上表现正常,但是在安卓上的表现是纹理重叠,替换 spriteFrame 后,原有的spriteFrame并没有被清除,麻烦大佬帮忙看下

正常表现

异常表现

  • 出现概率:100%

DEMO:RenderTexture_demo.rar (417.3 KB)

是有问题,已经提交处理了~

我也遇到了,这个问题大概什么时候能修复呢,预览版本也行,年前急着上线

大佬,请问处理的情况怎么样了~

同求解决,同样年前急着上线

你设置下这个标志,默认的camera设置是没有清除color,所以有残影,web上的表现不对,我们在排查下。

camera.clearFlags = 0xff;

加上这个标识后,表现效果安卓和WEB一样有问题,只剩下最后一个残影了。

什么意思?原来web不是没有问题的吗?

如果添加 camera.clearFlags = 0xff; 在Web上表现:只剩下一个残影,在安卓机上也是一样的表现

你自己确认下,_buff_texture2 这个texture对象,所有spriteFrame是共享的,一个修改就全部被覆盖了,看起来是这样情况。

我在发帖后,发现texture的共享情况,将代码这两个位置做了修改,忘记同步了,囧

我这两天做残影效果也遇到过这个问题,我这边的解决方案是对我要进行截图的节点设置group,对应的调整camera的cullingMask对应前面的group,然后设置camera的backgroundColor为透明cc.Color.TRANSPARENT;
这是具体代码:
this.node.group = “shadow”;

    let cr = new cc.Node();
    cr.setContentSize(this.node.getContentSize());
    cr.parent = this.node;
    this.camera = cr.addComponent(cc.Camera);
    this.camera.alignWithScreen = false;
    this.camera.orthoSize = cr.height;
    this.camera.clearFlags = 1;
    this.camera.cullingMask = 2;
    this.camera.backgroundColor = cc.Color.TRANSPARENT;