/
TON618OFF
/
Unity-Project-RTU
Обзор
Документация
Войти
/
TON618OFF
/
Unity-Project-RTU
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Library/PackageCache/com.unity.timeline@1.7.6/Editor/Window/TimelineWindow_PlaybackControls.cs
105 строк
3 KB
TON618OFF
release
03 окт 2024, 22:20
03 окт 2024, 22:20
7c70e9f
Код
Авторство
О чём код?
using System; using System.Linq; using UnityEngine; using UnityEngine.Timeline; namespace UnityEditor.Timeline { partial class TimelineWindow { /// <summary> /// Internal class that implements TimelinePlaybackControls /// </summary> internal class TimelinePlaybackControlsImpl : ITimelinePlaybackControls { public TimelinePlaybackControlsImpl(IWindowStateProvider window) { if (window == null) throw new ArgumentNullException(nameof(window), "TimelineNavigator cannot be used with a null window"); m_Window = window; } public void Play() { windowState.SetPlaying(true); } public void Pause() { windowState.SetPlaying(false); } public void PreviousFrame() { windowState.editSequence.frame--; } public void NextFrame() { windowState.editSequence.frame++; } public void GoToFirstFrame() { windowState.editSequence.time = 0; } public void GoToLastFrame() { windowState.editSequence.time = windowState.editSequence.duration; } public void SetCurrentTime(double time, TimelinePlaybackControls.Context context) { ISequenceState targetSequenceState = GetTargetSequenceState(context); targetSequenceState.time = time; } public void SetCurrentFrame(int frame, TimelinePlaybackControls.Context context) { ISequenceState targetSequenceState = GetTargetSequenceState(context); targetSequenceState.frame = frame; } public double GetCurrentTime(TimelinePlaybackControls.Context context) { ISequenceState targetSequenceState = GetTargetSequenceState(context); return targetSequenceState.time; } public int GetCurrentFrame(TimelinePlaybackControls.Context context) { ISequenceState targetSequenceState = GetTargetSequenceState(context); return targetSequenceState.frame; } ISequenceState GetTargetSequenceState(TimelinePlaybackControls.Context context) { switch (context) { case TimelinePlaybackControls.Context.Global: return windowState.masterSequence; case TimelinePlaybackControls.Context.Local: return windowState.editSequence; default: throw new ArgumentException("Unknown Context", nameof(context)); } } IWindowState windowState { get { if (m_Window == null || m_Window.windowState == null) throw new InvalidOperationException("The Window associated to this instance has been destroyed"); return m_Window.windowState; } } readonly IWindowStateProvider m_Window; } public override TimelinePlaybackControls playbackControls => new TimelinePlaybackControls(this); } }