public void Play(bool restart) { if (!_sequence.IsStopped && restart) { _sequence.Stop(); } int frame = _viewRange.Cull(_sequence.GetCurrentFrame()); _sequence.Play(frame); _timeStartedPlaying = EditorApplication.timeSinceStartup - (frame - _viewRange.Start) * _sequence.InverseFrameRate; SetCurrentFrame(frame); _isPlaying = true; FUtility.RepaintGameView(); }
void Update() { #if FLUX_PROFILE Profiler.BeginSample("flux Update"); #endif if (_sequenceEditor == null) { _sequenceEditor = GTimelineEditor.CreateInstance <GTimelineEditor>(); _sequenceEditor.Init(this); } GTimelineEditor sequence = _sequenceEditor.GetSequence(); if (EditorApplication.isCompiling) { _isEditorCompiling = true; _sequenceEditor.Stop(); } else if (_isEditorCompiling) { _isEditorCompiling = false; _windowRect = new Rect(); // clear window size so it rebuilds layout _sequenceEditor.Refresh(); } if (Application.isPlaying && sequence != null) { Repaint(); } _sequenceEditor.Update(); #if FLUX_PROFILE Profiler.EndSample(); #endif }