Version: 5.4

설명

Called multiple times per second on all visible windows.


Save frames from the Game View when on play mode.

/// C# Example
// Simple script that saves frames from the Game View when on play mode
//
// You can put later the frames together and create a video.
// Note: The frames are saved next to the Assets folder.
    
using UnityEngine;
using UnityEditor;
    
public class SimpleRecorder : EditorWindow {
    string fileName = "FileName";
    
    string status = "Idle";
    string recordButton = "Record";
    bool recording = false;
    float lastFrameTime = 0.0f;
    int capturedFrame = 0;
    
    [MenuItem ("Example/Simple Recorder")]
    static void Init () {
        SimpleRecorder window = 
            (SimpleRecorder)EditorWindow.GetWindow(typeof(SimpleRecorder));
    }
    
    void OnGUI () {
        fileName = EditorGUILayout.TextField ("File Name:", fileName);
            
        if(GUILayout.Button(recordButton)) {
            if(recording) { //recording
                status = "Idle...";
                recordButton = "Record";                
                recording = false;
            } else { // idle
                capturedFrame = 0;
                recordButton = "Stop";
                recording = true;
            }
        }
        EditorGUILayout.LabelField ("Status: ", status);
    }
        
    void Update () {
        if (recording) {
            if (EditorApplication.isPlaying && !EditorApplication.isPaused){
                RecordImages();
                Repaint();
            } else
                status = "Waiting for Editor to Play";
        }
    }
        
    void RecordImages() {
        if(lastFrameTime < Time.time + (1/24f)) { // 24fps
            status = "Captured frame " + capturedFrame;
            Application.CaptureScreenshot(fileName + " " + capturedFrame + ".png");
            capturedFrame++;
            lastFrameTime = Time.time;    
        }
    }
}