deltaTime
The interval between this frame and the preceding frame. The interval is unscaled and expressed in seconds.
Read time 1 minuteLast updated 10 days ago
Definition
- Type: Property
- Namespace: UnityEngine.Playables
- Assembly: UnityEngine.CoreModule
public float deltaTime { get; }
Remarks
To time-scale the interval, multiple the interval by FrameData.effectiveSpeed.
Examples
//Attach this script to a GameObject that has an Animator and set the Animator field.using UnityEngine;using UnityEngine.Animations;using UnityEngine.Playables;public class MyMonoBehaviour : MonoBehaviour{ [SerializeField] private Animator m_Animator; private PlayableGraph m_Graph; private void Awake() { m_Graph = PlayableGraph.Create(); m_Graph.SetTimeUpdateMode(DirectorUpdateMode.GameTime); var scriptPlayable = ScriptPlayable<MyPlayableBehaviour>.Create(m_Graph); // Sets game time's scale, as well as custom playable's speed. Time.timeScale = 10f; scriptPlayable.SetSpeed(0.5f); var playableOutput = AnimationPlayableOutput.Create(m_Graph, "MyPlayableOutput", m_Animator); playableOutput.SetSourcePlayable(scriptPlayable, 0); m_Graph.Play(); } private void OnDestroy() { if (m_Graph.IsValid()) m_Graph.Destroy(); }}public sealed class MyPlayableBehaviour : PlayableBehaviour{ public override void PrepareFrame(Playable playable, FrameData info) { base.PrepareFrame(playable, info); // info.deltaTime is not scaled, and so is 10 times smaller than Time.deltaTime // info.effectiveSpeed is equal to 5 (10 * 0.5). Time.timeScale is accounted for because we use DirectorUpdateMode.GameTime. // If we had used DirectorUpdateMode.UnscaledGameTime, info.effectiveSpeed would have been equal to 0.5. Debug.Log($"info.deltaTime = {info.deltaTime}, speed {info.effectiveSpeed} Time.deltaTime = {Time.deltaTime}"); }}