
使用一个rgba的集合来创建图片,cocos creator和unity表现不一致
具体代码cocos代码
let texture = new cc.RenderTexture();
let w = 64,h = 47,i = 0;
let data = new Uint8Array(w*h*4);
arr.forEach((element)=>{
data[i++] = element.r;
data[i++] = element.g;
data[i++] = element.b;
data[i++] = element.a;
});
texture.initWithData(data,cc.Texture2D.PixelFormat.RGBA8888,w,h,cc.size(w,h));
let spriteFrame = new cc.SpriteFrame();
spriteFrame.setTexture(texture);
this.node.getChildByName('sp').setContentSize(cc.size(w,h));
this.node.getChildByName('sp').getComponent(cc.Sprite).spriteFrame = spriteFrame;
unity 代码
FileStream f = new FileStream("ee.colors",FileMode.Open);
Color32[] colors = new Color32[f.Length/4];
for (int i = 0; i < colors.Length; i++) {
colors[i].r = (byte)f.ReadByte();
colors[i].g = (byte)f.ReadByte();
colors[i].b = (byte)f.ReadByte();
colors[i].a = (byte)f.ReadByte();
}
Texture2D texture2D = new Texture2D(64, 47);
texture2D.SetPixels32(colors);
texture2D.filterMode = FilterMode.Point;
texture2D.Apply();
//im2 ugui Image
im2.sprite = Sprite.Create(texture2D, new Rect(0, 0,64,47),new Vector2(0.5f, 0.5f));
im2.SetNativeSize();
`