Unity3D Sprite和Texture2D互转

1:克隆Texture2D

 //originTex为克隆对象
 Texture2D newTex;
 newTex = new Texture2D(originTex.width, originTex.height);
 Color[] colors = originTex.GetPixels(0, 0, originTex.width, originTex.height);
 newTex.SetPixels(colors);
 newTex.Apply();//必须apply才生效

2:Sprite转Texture2D

//sprite为图集中的某个子Sprite对象
        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();

参考:https://answers.unity.com/questions/651984/convert-sprite-image-to-texture.html

3: Texture2D转Sprite

//t2d为待转换的Texture2D对象
Sprite s= Sprite.Create(t2d, new Rect(0, 0, t2d.width, t2d.height), Vector2.zero);

猜你喜欢

转载自blog.csdn.net/iningwei/article/details/88537706
今日推荐