版本:Unity 6 (6000.0)
语言英语
  • C#

Time.captureDeltaTime

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们确实会阅读用户建议的每次更改,并在适用情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请在几分钟后<a>重试</a>。感谢您花时间帮助我们提高 Unity 文档的质量。

关闭

取消

public static float captureDeltaTime;

描述

降低应用程序的回放速度,以允许 Unity 在帧之间保存截图。

如果此属性具有非零值,则 Time.time 将以 captureDeltaTime 间隔(由 Time.timeScale 缩放)增加,而不论实时和帧的持续时间。当您需要恒定的帧率并想在帧之间留出足够的时间来保存屏幕图像时,这一点非常有用。

注意: captureDeltaTime 不会对 Time.unscaledTime 产生任何影响。因此,如果您的应用程序的部分内容依赖于它来进行动画或其他效果,那么 captureDeltaTime 可能不足以录制视频。

using UnityEngine;
using System.Collections;

// 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).

public class ExampleClass : MonoBehaviour { // The folder to contain our screenshots. // If the folder exists we will append numbers to create an empty folder. public string folder = "ScreenshotFolder"; public int frameRate = 25; void Start() { // Set the playback framerate (real time will not relate to game time after this). Time.captureDeltaTime = 1.0f / frameRate;

// Create the folder System.IO.Directory.CreateDirectory(folder); }

void Update() { // Append filename to folder name (format is '0005 shot.png"') string name = string.Format("{0}/{1:D04} shot.png", folder, Time.frameCount);

// Capture the screenshot to the specified file. ScreenCapture.CaptureScreenshot(name); } }