unity如何把RawImage的RenderTure图片转化成Sprite
一、目的
通过在RawImage下的动态图截取生成很多个Image的图片排列在UI中。
二、RenderTure不能直接转化
1.先把RenderTure转化成Texture2d
代码如下(示例):
[SerializeField] RawImage Photo = null;
Texture2D texture2D = new Texture2D(Photo.texture.width, Photo.texture.height, TextureFormat.ARGB32, false);
RenderTexture.active = renderT;
texture2D.ReadPixels(new Rect(0, 0, Photo.texture.width, Photo.texture.height), 0, 0);
texture2D.Apply();
2.再把得到的Texture2d转化成Sprite
代码如下(示例):
Sprite sprite = Sprite.Create(texture2D,
new Rect(0, 0, Photo.texture.width, Photo.texture.height),
new Vector2(0.5f, 0.5f));
var targetTex = new Texture2D((int)sprite.rect.width, (int)sprite.rect.height);
var pixels = sprite.texture.GetPixels(
(int)sprite.textureRect.x,
(int)sprite.textureRect.y,
(int)sprite.textureRect.width,
(int)sprite.textureRect.height);
targetTex.SetPixels(pixels);
targetTex.Apply();
该处使用的url网络请求的数据。