|
|
|
@ -5,17 +5,13 @@ namespace Game
|
|
|
|
{
|
|
|
|
{
|
|
|
|
public class TimelineObject
|
|
|
|
public class TimelineObject
|
|
|
|
{
|
|
|
|
{
|
|
|
|
public List<TimelineClipPoolItem> MClips = new List<TimelineClipPoolItem>();
|
|
|
|
public readonly List<TimelineClipPoolItem> Clips = new List<TimelineClipPoolItem>();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public class TimelineManager : ManagerBase<TimelineManager>
|
|
|
|
public class TimelineManager : ManagerBase<TimelineManager>
|
|
|
|
{
|
|
|
|
{
|
|
|
|
private static readonly string MSkillTimelinePathRoot = "Timeline/";
|
|
|
|
private const string SkillTimelinePathRoot = "Timeline/";
|
|
|
|
public TimelineManager()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public override void OnCreate()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public void RunSkillTimeline(GameEntity entity, string skillName)
|
|
|
|
public void RunSkillTimeline(GameEntity entity, string skillName)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var entityTimeline = entity.timeline.Timeline;
|
|
|
|
var entityTimeline = entity.timeline.Timeline;
|
|
|
|
@ -28,49 +24,56 @@ namespace Game
|
|
|
|
clips.Clear();
|
|
|
|
clips.Clear();
|
|
|
|
foreach (var clip in track.GetClips())
|
|
|
|
foreach (var clip in track.GetClips())
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var clipReal = TimelineClipPoolManager.Instance.CreateByClipType(clip.asset.GetType(), clip, entity);
|
|
|
|
var clipReal =
|
|
|
|
|
|
|
|
TimelineClipPoolManager.Instance.CreateByClipType(clip.asset.GetType(), clip, entity);
|
|
|
|
if (clipReal == null)
|
|
|
|
if (clipReal == null)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
clips.Add(clipReal);
|
|
|
|
clips.Add(clipReal);
|
|
|
|
if (clipReal.Clip.EndTime > timeMax)
|
|
|
|
if (clipReal.Clip.EndTime > timeMax)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
timeMax = clipReal.Clip.EndTime;
|
|
|
|
timeMax = clipReal.Clip.EndTime;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//这里需要按时间排序 同类型clip时序问题
|
|
|
|
//这里需要按时间排序 同类型clip时序问题
|
|
|
|
clips.Sort((a, b) => (int)(a.Clip.EndTime - b.Clip.EndTime));
|
|
|
|
clips.Sort((a, b) => (int)((a.Clip.EndTime - b.Clip.EndTime) * 1000));
|
|
|
|
entityTimeline.MClips.AddRange(clips);
|
|
|
|
entityTimeline.Clips.AddRange(clips);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
entity.timeline.TimePast = 0;
|
|
|
|
entity.timeline.TimePast = 0;
|
|
|
|
entity.timeline.TimeMax = timeMax;
|
|
|
|
entity.timeline.TimeMax = timeMax;
|
|
|
|
entity.timeline.IsRunning = true;
|
|
|
|
entity.timeline.IsRunning = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void EndSkillTimeline(GameEntity entity)
|
|
|
|
public void EndSkillTimeline(GameEntity entity)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var timeline = entity.timeline;
|
|
|
|
var timeline = entity.timeline;
|
|
|
|
if (timeline.Timeline != null)
|
|
|
|
if (timeline.Timeline != null)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
foreach (var clip in timeline.Timeline.MClips)
|
|
|
|
foreach (var clip in timeline.Timeline.Clips)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var clipReal = clip.Clip;
|
|
|
|
var clipReal = clip.Clip;
|
|
|
|
if (clipReal.IsAlive)
|
|
|
|
if (clipReal.IsAlive)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
clipReal.OnLeave();
|
|
|
|
clipReal.OnLeave();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
clip.Destroy();
|
|
|
|
clip.Destroy();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
timeline.Timeline.MClips.Clear();
|
|
|
|
|
|
|
|
|
|
|
|
timeline.Timeline.Clips.Clear();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
timeline.IsRunning = false;
|
|
|
|
timeline.IsRunning = false;
|
|
|
|
timeline.IsPause = false;
|
|
|
|
timeline.IsPause = false;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public TimelineAsset EnsureGetSkillTimeline(string path)
|
|
|
|
public TimelineAsset EnsureGetSkillTimeline(string path)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var pathReal = $"{MSkillTimelinePathRoot}{path}";
|
|
|
|
var pathReal = $"{SkillTimelinePathRoot}{path}";
|
|
|
|
return Util.Load<TimelineAsset>(pathReal);
|
|
|
|
return Util.Load<TimelineAsset>(pathReal);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|