纹理从Assets文件夹到Texture2D和保存?

时间:2014-05-26 13:35:06

标签: unity3d textures texture2d

我在Assets文件夹中有一个Texture(Texture Type = Advanced,Read / Write Enabled = true,Max Size = 512,Format = RGB 24 bit)。现在我想读取这个纹理,然后将像素复制到另一个texture2d并保存。

private Texture2D sourceImg;

...

Texture2D tex = new Texture2D(512, 512, TextureFormat.RGB24, false);
tex.SetPixels(sourceImg.GetPixels(0,0,512,512));
tex.Apply();
byte[] png = tex.EncodeToPNG();
File.WriteAllBytes(Application.persistentDataPath + "/Screenshot.png", png);

我不知道,为什么这个简单的代码不起作用?

当我将新的tex添加到四元组时:

quad.renderer.material.mainTexture = tex;

有效。

2 个答案:

答案 0 :(得分:1)

好的,我解决了。只需这样做:转到编辑 - >项目设置 - >播放器 - >其他设置和更改写入外部访问。

答案 1 :(得分:-1)

谢谢!适合我。建议改变这个: File.WriteAllBytes(Application.persistentDataPath +“/ Screenshot.png”,png); 通过自定义输出文件夹,如下所示: File.WriteAllBytes(“C:/ OutputFolder”+“/ Screenshot.png”,png);