Legacy Documentation: Version 4.5.0

Script language:

  • JS
  • C#
  • Boo
Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

Time.captureFramerate

static var captureFramerate: int;
static int captureFramerate;
static captureFramerate as int

Description

Slows game playback time to allow screenshots to be saved between frames.

If this property has a non-zero value then frame update will occur at an interval of (1.0 / captureFramerate) regardless of real time and the time required to render a frame. This is useful if you want to capture a movie where you need a constant frame rate and leave enough time between frames to save screen images.

// Capture frames as a screenshot sequence. Images are
// stored as PNG files in a folder - these can be combined into
// a movie using image utility software (eg, QuickTime Pro).

// The folder to contain our screenshots. // If the folder exists we will append numbers to create an empty folder. var folder = "ScreenshotFolder"; var frameRate = 25;

function Start () { // Set the playback framerate (real time will not relate to game time after this). Time.captureFramerate = frameRate; // Create the folder System.IO.Directory.CreateDirectory(folder); } function Update () { // Append filename to folder name (format is '0005 shot.png"') var name = String.Format("{0}/{1:D04} shot.png", folder, Time.frameCount ); // Capture the screenshot to the specified file. Application.CaptureScreenshot(name); }

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    public string folder = "ScreenshotFolder";
    public int frameRate = 25;
    void Start() {
        Time.captureFramerate = frameRate;
        System.IO.Directory.CreateDirectory(folder);
    }
    void Update() {
        string name = String.Format("{0}/{1:D04} shot.png", folder, Time.frameCount);
        Application.CaptureScreenshot(name);
    }
}
import UnityEngine
import System.Collections

public class ExampleClass(MonoBehaviour):

	public folder as string = 'ScreenshotFolder'

	public frameRate as int = 25

	def Start() as void:
		Time.captureFramerate = frameRate
		System.IO.Directory.CreateDirectory(folder)

	def Update() as void:
		name as string = String.Format('{0}/{1:D04} shot.png', folder, Time.frameCount)
		Application.CaptureScreenshot(name)