SW 중심대학 OSS GIT 서버 박건태, 이승준, 고기완, 이준호 새로운 배포
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.5 KiB

4 years ago
  1. using UnityEngine;
  2. namespace UnityEditor.Timeline
  3. {
  4. enum PlaybackScrollMode
  5. {
  6. None,
  7. Pan,
  8. Smooth
  9. }
  10. static class PlaybackScroller
  11. {
  12. public static void AutoScroll(WindowState state)
  13. {
  14. if (Event.current.type != EventType.Layout)
  15. return;
  16. switch (state.autoScrollMode)
  17. {
  18. case PlaybackScrollMode.Pan:
  19. DoPanScroll(state);
  20. break;
  21. case PlaybackScrollMode.Smooth:
  22. DoSmoothScroll(state);
  23. break;
  24. }
  25. }
  26. static void DoSmoothScroll(WindowState state)
  27. {
  28. if (state.playing)
  29. state.SetPlayHeadToMiddle();
  30. state.UpdateLastFrameTime();
  31. }
  32. static void DoPanScroll(WindowState state)
  33. {
  34. if (!state.playing)
  35. return;
  36. var paddingDeltaTime = state.PixelDeltaToDeltaTime(WindowConstants.autoPanPaddingInPixels);
  37. var showRange = state.timeAreaShownRange;
  38. var rightBoundForPan = showRange.y - paddingDeltaTime;
  39. if (state.editSequence.time > rightBoundForPan)
  40. {
  41. var leftBoundForPan = showRange.x + paddingDeltaTime;
  42. var delta = rightBoundForPan - leftBoundForPan;
  43. state.SetTimeAreaShownRange(showRange.x + delta, showRange.y + delta);
  44. }
  45. }
  46. }
  47. }