暂无描述
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

ClipItem.cs 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. using System;
  2. using UnityEngine.Timeline;
  3. namespace UnityEditor.Timeline
  4. {
  5. class ClipItem : IBlendable, ITrimmable
  6. {
  7. readonly TimelineClip m_Clip;
  8. public TimelineClip clip
  9. {
  10. get { return m_Clip; }
  11. }
  12. public ClipItem(TimelineClip clip)
  13. {
  14. m_Clip = clip;
  15. }
  16. public TrackAsset parentTrack
  17. {
  18. get { return m_Clip.GetParentTrack(); }
  19. set { m_Clip.SetParentTrack_Internal(value); }
  20. }
  21. public double start
  22. {
  23. get { return m_Clip.start; }
  24. set { m_Clip.start = value; }
  25. }
  26. public double end
  27. {
  28. get { return m_Clip.end; }
  29. }
  30. public double duration
  31. {
  32. get { return m_Clip.duration; }
  33. }
  34. public bool IsCompatibleWithTrack(TrackAsset track)
  35. {
  36. return track.IsCompatibleWithClip(m_Clip);
  37. }
  38. public void PushUndo(string operation)
  39. {
  40. UndoExtensions.RegisterClip(m_Clip, operation);
  41. }
  42. public TimelineItemGUI gui
  43. {
  44. get { return ItemToItemGui.GetGuiForClip(m_Clip); }
  45. }
  46. public bool supportsBlending
  47. {
  48. get { return m_Clip.SupportsBlending(); }
  49. }
  50. public bool hasLeftBlend
  51. {
  52. get { return m_Clip.hasBlendIn; }
  53. }
  54. public bool hasRightBlend
  55. {
  56. get { return m_Clip.hasBlendOut; }
  57. }
  58. public double leftBlendDuration
  59. {
  60. get { return m_Clip.hasBlendIn ? m_Clip.blendInDuration : m_Clip.easeInDuration; }
  61. }
  62. public double rightBlendDuration
  63. {
  64. get { return m_Clip.hasBlendOut ? m_Clip.blendOutDuration : m_Clip.easeOutDuration; }
  65. }
  66. public void SetStart(double time, bool affectTimeScale)
  67. {
  68. ClipModifier.SetStart(m_Clip, time, affectTimeScale);
  69. m_Clip.ConformEaseValues();
  70. }
  71. public void SetEnd(double time, bool affectTimeScale)
  72. {
  73. ClipModifier.SetEnd(m_Clip, time, affectTimeScale);
  74. m_Clip.ConformEaseValues();
  75. }
  76. public void Delete()
  77. {
  78. EditorClipFactory.RemoveEditorClip(m_Clip);
  79. ClipModifier.Delete(m_Clip.GetParentTrack().timelineAsset, m_Clip);
  80. }
  81. public void TrimStart(double time)
  82. {
  83. ClipModifier.TrimStart(m_Clip, time);
  84. }
  85. public void TrimEnd(double time)
  86. {
  87. ClipModifier.TrimEnd(m_Clip, time);
  88. }
  89. public ITimelineItem CloneTo(TrackAsset parent, double time)
  90. {
  91. return new ClipItem(TimelineHelpers.Clone(m_Clip, TimelineEditor.inspectedDirector, TimelineEditor.inspectedDirector, time, parent));
  92. }
  93. public override string ToString()
  94. {
  95. return m_Clip.ToString();
  96. }
  97. public bool Equals(ClipItem otherClip)
  98. {
  99. if (ReferenceEquals(null, otherClip)) return false;
  100. if (ReferenceEquals(this, otherClip)) return true;
  101. return Equals(m_Clip, otherClip.m_Clip);
  102. }
  103. public override int GetHashCode()
  104. {
  105. return (m_Clip != null ? m_Clip.GetHashCode() : 0);
  106. }
  107. public bool Equals(ITimelineItem other)
  108. {
  109. return Equals((object)other);
  110. }
  111. public override bool Equals(object obj)
  112. {
  113. if (ReferenceEquals(null, obj)) return false;
  114. if (ReferenceEquals(this, obj)) return true;
  115. var other = obj as ClipItem;
  116. return other != null && Equals(other);
  117. }
  118. }
  119. }