-
Creator 版本:2.2.1
-
目标平台: Web / iOS / Android / 模拟器
-
重现方式:必现
-
需求描述:
参考最新截图方式获取当前界面的纹理,将纹理传递给精灵帧,从而使用精灵Sprite渲染这个纹理并将整个纹理缩小类似一个小地图的效果。
-
问题一:调用该方法后,截图纹理在Sprite中偏移且大小无法更改;
-
问题二:调用一次绘制,drawcall数量接近翻一倍为什么?
截屏主要代码:
testScreenShot: function () {
console.log('开始截屏');
let node = new cc.Node();
node.parent = cc.director.getScene();
let camera = node.addComponent(cc.Camera);
// 设置你想要的截图内容的 cullingMask
camera.cullingMask = 0xffffffff;
if (this.screenshotSprite) {
console.log('纹理渲染到sprite.');
let spriteFrame = new cc.SpriteFrame(camera.targetTexture);
let tmpRect = new cc.Rect(0,0,320,180);
spriteFrame.setRect(tmpRect);
this.screenshotSprite.spriteFrame = spriteFrame;
console.log('渲染完成.');
}
}
问题截图:
一、为调用截图方法之前:
drawcall为30,左下角精灵为打算放屏幕截图缩小版的精灵
二、截图方法调用后:
drawcall接近60且截图显示在了屏幕右上角。



这样子的同级不可以是吗?