1 en utilisant System.Collections ; 2 en utilisant System.Collections.Generic ; 3 en utilisant System.IO ; 4 avec UnityEngine ; 5 6 public class截图 : MonoBehaviour { 7 8 private void Update() 9 { 10 if (Input.GetKeyDown(KeyCode.S)) 11 { 12 Debug.Log( " Save " ); 13 Enregistrer(); 14 } 15 } 16 17 texture cible RenderTexture privée ; 18 19 private void OnRenderImage(source RenderTexture, destination RenderTexture) 20 { 21 TargetTexture = source; 22 Graphiques.Blit(source, destination); 23 } 24 25 private void Save() 26 { 27 RenderTexture.active = TargetTexture; 28 29 Texture2D png = new Texture2D(RenderTexture.active.width, RenderTexture.active.height, TextureFormat.ARGB32, true ); 30 png.ReadPixels( new Rect( 0 , 0 , RenderTexture.active.width, RenderTexture.active.height), 0 , 0 ); 31 32 octets [] octets = png.EncodeToPNG(); 33 chaîne chemin = chaîne .Format( @" D:\123.png " ); 34 Fichier FileStream = File.Open(path, FileMode.Create); 35 BinaryWriter writer = new BinaryWriter(file); 36 écrivain. Écrire (octets); 37 fichier.Close(); 38 écrivain.Close(); 39 40 Détruire(png); 41 png = nul ; 42 43 Debug.Log( " Sauvegarder " ); 44 } 45 }
Fonction:
Cliquez sur S pour prendre une capture d'écran.
Ce script doit être monté sur la caméra.
OnRenderImage est un événement intégré de Unity, qui sera exécuté après le rendu de la scène par le GPU et avant le rendu à l'écran. Deux paramètres, l'un est l'image rendue par le GPU, et le second paramètre sera rendu à l'écran après l'appel de l'événement.
Cet événement peut être utilisé pour le traitement post-écran, mais nous l'utilisons ici pour intercepter l'image rendue, l'enregistrer puis la renvoyer.
Réimprimé dans : https://www.cnblogs.com/Yukisora/p/8885202.html