TrackDrawer.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using UnityEngine;
  5. using UnityEngine.Playables;
  6. using UnityEngine.Timeline;
  7. namespace UnityEditor.Timeline
  8. {
  9. class TrackDrawer : GUIDrawer
  10. {
  11. internal WindowState sequencerState { get; set; }
  12. public static TrackDrawer CreateInstance(TrackAsset trackAsset)
  13. {
  14. if (trackAsset == null)
  15. return Activator.CreateInstance<TrackDrawer>();
  16. TrackDrawer drawer;
  17. try
  18. {
  19. drawer = (TrackDrawer)Activator.CreateInstance(TimelineHelpers.GetCustomDrawer(trackAsset.GetType()));
  20. }
  21. catch (Exception)
  22. {
  23. drawer = Activator.CreateInstance<TrackDrawer>();
  24. }
  25. drawer.track = trackAsset;
  26. return drawer;
  27. }
  28. protected TrackAsset track { get; private set; }
  29. public virtual bool DrawTrackHeaderButton(Rect rect, TrackAsset track, WindowState state)
  30. {
  31. return false;
  32. }
  33. public virtual bool DrawTrack(Rect trackRect, TrackAsset trackAsset, Vector2 visibleTime, WindowState state)
  34. {
  35. return false;
  36. }
  37. public virtual void DrawRecordingBackground(Rect trackRect, TrackAsset trackAsset, Vector2 visibleTime, WindowState state)
  38. {
  39. EditorGUI.DrawRect(trackRect, DirectorStyles.Instance.customSkin.colorTrackBackgroundRecording);
  40. }
  41. }
  42. }