Screenshot in Unity aufnehmen

Screenshots lassen sich in Unity sehr einfach über die ScreenCapture-Klasse bzw. die CaptureScreenshot-Methode erstellen. Ihr könnt die unten beschriebene Klasse verwenden. Erstellt einfach ein neues Script CaptureScreenshot.cs und fügt den Code dort ein. Anschließend müsst Ihr das neue MonoBehaviour nur noch einem GameObject anfügen. Ihr könnt den Unterordner folder und die Taste key anschließend einfach über den Inspector auswählen. Screenshots werden in Eurem System-Ordner Bilder gespeichert.

using UnityEngine;

public class CaptureScreenshot : MonoBehaviour
{
    private string _screenshotDirectory;

    // Define the button which will trigger the screenshot function.
    public KeyCode key = KeyCode.F11;

    // The name of the folder within our pictures folder.
    public string folder = "my-folder";

    void Start()
    {
        _screenshotDirectory = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyPictures) + "/" + folder;

        // Make sure our target directory exists.
        System.IO.Directory.CreateDirectory(_screenshotDirectory);
    }

    void Update()
    {
        if (Input.GetKeyDown(key)) {
            StartCoroutine(CaptureScreenshot());
        }
    }

    IEnumerator CaptureScreenshot()
    {
        yield return null;

        // Take the actual screenshot.
        string filename = "screenshot-w" + Screen.width + "-h" + Screen.height + "-" + System.DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss") + ".png";
        ScreenCapture.CaptureScreenshot(_screenshotDirectory + "/" + filename);

        // Just for debugging, log the path where the screenshot was stored.
        Debug.Log("Screenshot taken: " + _screenshotDirectory + "/" + filename);
    }
}

Noch keine Kommentare vorhanden.