protected virtual void OnDrawGizmos()
        {
#if UNITY_2018_1_OR_NEWER
            TimelineLiteAsset inspectedAsset = TimelineEditor.inspectedAsset as TimelineLiteAsset;
#else
            TimelineLiteAsset inspectedAsset = UnityEditor.Timeline.TimelineEditor.timelineAsset as TimelineLiteAsset;
#endif
            if (inspectedAsset == null)
            {
                return;
            }

            // 始终调用
            foreach (var trackAsset in inspectedAsset.GetOutputTracks())
            {
                TLBasicTrackAsset basicTrackAsset = trackAsset as TLBasicTrackAsset;
                if (basicTrackAsset == null)
                {
                    continue;
                }
                foreach (var timelineClip in trackAsset.GetClips())
                {
                    IDrawGizmos asset = timelineClip.asset as IDrawGizmos;
                    if (asset != null)
                    {
                        asset.DrawGizmos_Lite(Playable, timelineClip, IndicatorFrame);
                    }
                }
            }

            foreach (var timelineClip in TimelineEditor.selectedClips)
            {
                IDrawGizmos asset = timelineClip.asset as IDrawGizmos;
                if (asset != null)
                {
                    asset.DrawGizmosSelected_Lite(Playable, timelineClip, IndicatorFrame);
                }
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Registers an object for gizmo drawing.
 /// The DrawGizmos method on the object will be called every frame until it is destroyed (assuming there are cameras with gizmos enabled).
 /// </summary>
 public static void Register(IDrawGizmos item)
 {
     gizmoDrawers.Add(item);
 }