各位大佬下午好~,我这里是一个拼图游戏,DrawCall非常非常高
我猜测问题来源于图中的三角形数目,先说一下这个图是如何做出来的
- 在一个可以包含整个马头的区域内铺满小正方形,把马头图片放上去,根据马头图片颜色(透明或者黑色),对所有的小正方形进行切割,我这里是直接用readpixiel返回数组编辑像素来完成切割的,没有用shader,shader会好一些嘛?而且我这里把数组变成spriteframe的代码是从网上找的,这个代码似乎不能动态合图,否则会提示很多WebGL的错误,代码如下:
// 像素点生成图片
export function ArrayToSpriteFrame(buffer: Uint8Array, width: number, height: number): SpriteFrame | null{
// 生成一张新的图来进行替换
let imageAsset: ImageAsset = new ImageAsset();
imageAsset.reset({
_data: buffer,
width: width,
height: height,
format: Texture2D.PixelFormat.RGBA8888,
_compressed: false
});
let tex: Texture2D = new Texture2D();
tex.image = imageAsset;
let spriteFrame = new SpriteFrame();
spriteFrame.texture = tex;
spriteFrame.packable = false;
// 返回新的图
return spriteFrame;
}
- 下方的选项部分,是通过找到上方马头中对应位置的正方形,把切割好的spriteframe给拿过来。下方选项其实挺多的,用了一个scrowview。
哪个大佬路过抬我一手,救死扶伤啊。。。。。。。。。

你的这个是一个sp吗