public WindowState(TimelineWindow w, SequenceHierarchy hierarchy) { m_Window = w; m_Preferences = w.preferences; hierarchy.Init(this); m_SequenceHierarchy = hierarchy; TimelinePlayable.muteAudioScrubbing = muteAudioScrubbing; }
void OnEnable() { if (m_SequencePath == null) { m_SequencePath = new SequencePath(); } if (m_SequenceHierarchy == null) { // The sequence hierarchy will become null if maximize on play is used for in/out of playmode // a static var will hang on to the reference if (s_LastHierarchy != null) { m_SequenceHierarchy = s_LastHierarchy; } else { m_SequenceHierarchy = SequenceHierarchy.CreateInstance(); } state = null; } s_LastHierarchy = m_SequenceHierarchy; titleContent = GetLocalizedTitleContent(); UpdateTitle(); m_PreviewResizer.Init("TimelineWindow"); // Unmaximize fix : when unmaximizing, a new window is enabled and disabled. Prevent it from overriding the instance pointer. if (instance == null) { instance = this; } AnimationClipCurveCache.Instance.OnEnable(); TrackAsset.OnClipPlayableCreate += m_PlayableLookup.UpdatePlayableLookup; TrackAsset.OnTrackAnimationPlayableCreate += m_PlayableLookup.UpdatePlayableLookup; if (state == null) { state = new WindowState(this, s_LastHierarchy); Initialize(); RefreshSelection(true); m_ForceRefreshLastSelection = true; } }