Konvertieren RenderTexture zu Texture2D
Brauche ich zum speichern einer RenderTexture-Objekt ein .png-Datei, die dann als textur zu wickeln, um ein 3D-Objekt. Mein problem ist jetzt ich kann nicht speichern Sie eine RenderTexture Objekt mit EncodeToPNG (), weil RenderTexture nicht gehören, die Methode. Wie kann ich umwandeln eine RenderTexture-Objekt in ein Texture2D-Objekt? Danke!
//Saves texture as PNG file.
using UnityEngine;
using System.Collections;
using System.IO;
public class SaveTexture : MonoBehaviour {
public RenderTexture tex;
//Save Texture as PNG
void SaveTexturePNG()
{
//Encode texture into PNG
byte[] bytes = tex.EncodeToPNG();
Object.Destroy(tex);
//For testing purposes, also write to a file in the project folder
File.WriteAllBytes(Application.dataPath + "/../SavedScreen.png", bytes);
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstellen neue
Texture2D
verwendenRenderTexture.ReadPixels
zu Lesen, die Pixel vonRenderTexture
in die neueTexture2D
. Schließlich RufenTexture2D.Apply();
gelten die geänderten Pixel.Verwendung:
Machen Sie es eine extension-Methode:
Verwendung:
RenderTexture
und speichern Sie es inTexture2D/tex
. Es ist besser, Lesen Sie den doc jeder Eigenschaft-Funktion verwendet, in dieser Antwort.RenderTexture
und danach wieder abzurufen.