Unity 180 rotation for a Texture2D, or maybe flip both

Viewed 14911

I could use just a little help. I am loading a png into a Texture2D, and have managed to flip it over the y axis using the following script I found. I need to flip it over the x axis now. I know a small modification should do it, but I have not managed to get the results I want.

    Texture2D FlipTexture(Texture2D original){
    Texture2D flipped = new Texture2D(original.width,original.height);

    int xN = original.width;
    int yN = original.height;

    for(int i=0;i<xN;i++){
        for(int j=0;j<yN;j++){
            flipped.SetPixel(xN-i-1, j, original.GetPixel(i,j));
        }
    }

    flipped.Apply();

    return flipped;
}
3 Answers

This flips the textures upside down:

int width = texture.width;
int height = texture.height;
Texture2D snap = new Texture2D(width, height);
Color[] pixels = texture.GetPixels();
Color[] pixelsFlipped = new Color[pixels.Length];

for (int i = 0; i < height; i++)
{
    Array.Copy(pixels, i*width, pixelsFlipped, (height-i-1) * width , width);
}

snap.SetPixels(pixelsFlipped);
snap.Apply();
Related