Nous voulons utiliser une caméra (en plus de la première) disposant d’un élément UI à l’intérieur d’un canvas. Nous voulons sauvegarder la vue de la camera dans une fichier png/jpg. Ceci étant, nous avons un doute sur la méthode à employer.
Nous essayons d’utiliser une fonctionnalité du render texture, mais il enregistre l’élément UI dans une résolution de mauvaise qualité or je voudrais garder les dimensions originel en hauteur et en largeur.
Merci d'avance pour le temps que vous accorderez à ce sujet.
Parti de code problématique.
Code : Tout sélectionner
#region "Ienumerator that takes screenshot"
public IEnumerator takeScreenShot()
{
yield return new WaitForEndOfFrame ();
Vector2 temp = contentCorner.transform.position;
width = System.Convert.ToInt32(content.rect.width);
height = System.Convert.ToInt32(content.rect.height);
float Xp = temp.x - width/2;
float Yp = temp.y - height/2;
Texture2D tex = new Texture2D (width,height, TextureFormat.RGB24, false);
tex.ReadPixels (new Rect(Xp, Yp, width, height), 0, 0);
tex.Apply ();
//---------------------------
var bytes = tex.EncodeToPNG();
Destroy(tex);
if (imageName == "Screenshot_") {
File.WriteAllBytes(customPath + "/" + imageName + index + "."+ format, bytes);
} else {
File.WriteAllBytes (customPath + "/" + imageName + "."+ format, bytes);
}
index++;
}
#endregion