51 lines
1.5 KiB
C#
51 lines
1.5 KiB
C#
using System.Collections.Generic;
|
|
using UnityEngine.Playables;
|
|
using UnityEngine.Timeline;
|
|
|
|
namespace OctoberStudio.Extensions
|
|
{
|
|
public static class ToolkitExtensions
|
|
{
|
|
public static List<K> GetAssets<T, K>(this PlayableDirector director) where T : TrackAsset where K : PlayableAsset
|
|
{
|
|
var result = new List<K>();
|
|
|
|
foreach (var output in director.playableAsset.outputs)
|
|
{
|
|
if (output.sourceObject is T track)
|
|
{
|
|
foreach (var clip in track.GetClips())
|
|
{
|
|
if (clip.asset is K asset)
|
|
{
|
|
result.Add(asset);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
public static List<TimelineClip> GetClips<T, K>(this PlayableDirector director) where T : TrackAsset where K : PlayableAsset
|
|
{
|
|
var result = new List<TimelineClip>();
|
|
|
|
foreach (var output in director.playableAsset.outputs)
|
|
{
|
|
if (output.sourceObject is T track)
|
|
{
|
|
foreach (var clip in track.GetClips())
|
|
{
|
|
if (clip.asset is K)
|
|
{
|
|
result.Add(clip);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
}
|
|
} |