CyanStars
CyanStars copied to clipboard
feat: 支持在 clip 中放入一些 key
添加了 IKey
IKeyableClip
用于支持在 clip 中定义 keys
添加了 IKeyClipData<T>
用于定义创建 key 时使用的数据
添加了 IClipCreator<TTrack>
接口替代委托用于创建 clips :
- KeyableClip 需要更多创建参数,这提供了更灵活的创建方案
- 通过扩展方法创建对应的 AnonymousCreator,保留了原有的委托创建方式
- TrackData 被移动至 creator 中,现在从 Timeline 创建 clip 时需要传入创建的 clip 数量
KeyableClip 的使用方式较为繁琐 :
- 使用
IKeyClipData
定义 key 的数据 - 使用
ITrackData<T>
定义 clip 数据,T 为实现了IKeyClipData
的类型 - 根据签名分别实现
CreateClip
与CreateKey
方法
KeyClipCreator
使用与 TrackBuilder
类似的方法处理 key 的添加与排序,不需要额外处理
编辑:
如果框架层面不应该使用看上去有些繁琐的方式实现这样的功能,KeyableClip也可以作为外部扩展实现 (比如 CyanStars.Extension
之类的)
此 pr 也可以暂时搁置(或直接关闭),针对目前需求量不大的情况,可以改为在具体 Track 中实现,像 note track 那样