internal void ValidateBoundaryPreviews()
        {
            m_PreBoundaryPreview?.DisableDisplayTrajectory();
            if (m_PreBoundaryPreview == null)
            {
                if (m_TaggedClip.TaggedPreBoundaryClip != null)
                {
                    m_PreBoundaryPreview = Editor.Preview.CreatePreview(m_Owner.TargetAsset, m_Owner.PreviewTarget);
                }
            }
            else if (m_TaggedClip.TaggedPreBoundaryClip == null)
            {
                m_PreBoundaryPreview?.Dispose();
                m_PreBoundaryPreview = null;
            }

            m_PostBoundaryPreview?.DisableDisplayTrajectory();
            if (m_PostBoundaryPreview == null)
            {
                if (m_TaggedClip.TaggedPostBoundaryClip != null)
                {
                    m_PostBoundaryPreview = Editor.Preview.CreatePreview(m_Owner.TargetAsset, m_Owner.PreviewTarget);
                }
            }
            else if (m_TaggedClip.TaggedPostBoundaryClip == null)
            {
                m_PostBoundaryPreview?.Dispose();
                m_PostBoundaryPreview = null;
            }
        }
        void DisposePreviews()
        {
            if (m_Preview != null)
            {
                m_Preview.Dispose();
                m_Preview = null;
            }

            m_BoundaryClipTrack?.DisposePreviews();
            m_PlayControls.TogglePlayOff();
        }
        public void DisposePreviews()
        {
            if (m_PreBoundaryPreview != null)
            {
                m_PreBoundaryPreview.Dispose();
                m_PreBoundaryPreview = null;
            }

            if (m_PostBoundaryPreview != null)
            {
                m_PostBoundaryPreview.Dispose();
                m_PostBoundaryPreview = null;
            }
        }
        public static Preview CreatePreview(Asset asset, GameObject previewTarget)
        {
            var preview = new Preview(asset);

            try
            {
                preview.SetPreviewTarget(previewTarget);
            }
            catch (Exception e)
            {
                preview.Dispose();
                throw e;
            }

            return(preview);
        }
 void UpdatePreview()
 {
     if (PreviewEnabled && CanPreview())
     {
         if (m_Preview == null)
         {
             try
             {
                 m_Preview = Preview.CreatePreview(TargetAsset, m_PreviewTarget);
                 m_Preview.PreviewInvalidated += PreviewTargetInvalidated;
                 PreviewActiveTime();
             }
             catch (Exception e)
             {
                 Debug.Log(e.Message);
             }
         }
         else
         {
             PreviewActiveTime();
         }
     }
 }