微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

【Unity3D】不可读Texture资源的获取

直接上代码

 1 // 创建一个与纹理大小相同的临时 RenderTexture 
 2 RenderTexture tmp = RenderTexture.GetTemporary( 
 3                     texture.width, 
 4                     texture.height, 
 5                     0, 
 6                     RenderTextureFormat.Default, 
 7                     RenderTextureReadWrite.Linear); 
 8 
 9 
10 // 将纹理上的像素 Blit 到 RenderTexture 
11 Graphics.Blit(texture, tmp); 
12 
13 
14 // 备份当前设置的 RenderTexture 
15 RenderTexture prevIoUs = RenderTexture.active; 
16 
17 
18 // 将当前的 RenderTexture 设置为我们创建的临时
19 RenderTexture.active = tmp; 
20 
21 
22 // 创建一个新的可读 Texture2D 将像素复制到它
23 Texture2D myTexture2D = new Texture2D(texture.width, texture.height); 
24 
25 
26 // 将像素从 RenderTexture 复制到新的 Texture 
27 myTexture2D.ReadPixels(new Rect(0, 0, tmp.width, tmp.height), 0, 0); 
28 myTexture2D.Apply(); 
29 
30 
31 // 重置活动的 RenderTexture 
32 RenderTexture.active = prevIoUs; 
33 
34 
35 // 释放临时的RenderTexture 
36 RenderTexture.ReleaseTemporary(tmp); 
37 
38 
39 // “myTexture2D”现在具有与“texture”相同的像素,它是重新

实测可行

资源来源原文:https://support.unity.com/hc/en-us/articles/206486626-How-can-I-get-pixels-from-unreadable-textures-

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐