/// <inheritdoc />
        public override void OnDestroy()
        {
            Level.ActorDeleted -= OnActorDeleted;

            _timeline            = null;
            _saveButton          = null;
            _previewPlayerPicker = null;

            base.OnDestroy();
        }
        /// <inheritdoc />
        public SceneAnimationWindow(Editor editor, AssetItem item)
            : base(editor, item)
        {
            // Timeline
            _timeline = new SceneAnimationTimeline()
            {
                DockStyle = DockStyle.Fill,
                Parent    = this,
                Enabled   = false
            };
            _timeline.Modified += OnTimelineModified;

            // Toolstrip
            _saveButton = (ToolStripButton)_toolstrip.AddButton(Editor.Icons.Save32, Save).LinkTooltip("Save");
        }
        /// <inheritdoc />
        public SceneAnimationWindow(Editor editor, AssetItem item)
            : base(editor, item)
        {
            Level.ActorDeleted += OnActorDeleted;

            // Timeline
            _timeline = new SceneAnimationTimeline
            {
                AnchorPreset = AnchorPresets.StretchAll,
                Offsets      = new Margin(0, 0, _toolstrip.Bottom, 0),
                Parent       = this,
                Enabled      = false
            };
            _timeline.Modified      += OnTimelineModified;
            _timeline.PlayerChanged += OnTimelinePlayerChanged;

            // Toolstrip
            _saveButton = (ToolStripButton)_toolstrip.AddButton(Editor.Icons.Save32, Save).LinkTooltip("Save");
            _toolstrip.AddButton(editor.Icons.Docs32, () => Platform.OpenUrl(Utilities.Constants.DocsUrl + "manual/animation/scene-animations/index.html")).LinkTooltip("See documentation to learn more");

            // Preview player picker
            var previewPlayerPickerContainer = new ContainerControl();
            var previewPlayerPickerLabel     = new Label
            {
                AnchorPreset        = AnchorPresets.VerticalStretchLeft,
                VerticalAlignment   = TextAlignment.Center,
                HorizontalAlignment = TextAlignment.Far,
                Parent = previewPlayerPickerContainer,
                Width  = 60.0f,
                Text   = "Player:",
            };

            _previewPlayerPicker = new FlaxObjectRefPickerControl
            {
                Location = new Vector2(previewPlayerPickerLabel.Right + 4.0f, 8.0f),
                Width    = 140.0f,
                Type     = typeof(SceneAnimationPlayer),
                Parent   = previewPlayerPickerContainer,
            };
            previewPlayerPickerContainer.Width  = _previewPlayerPicker.Right + 2.0f;
            previewPlayerPickerContainer.Parent = _toolstrip;
            _previewPlayerPicker.CheckValid     = OnCheckValid;
            _previewPlayerPicker.ValueChanged  += OnPreviewPlayerPickerChanged;
        }