找回密码
 立即注册
查看: 380|回复: 0

Unity Timeline扩展研究之进阶篇(二)

[复制链接]
发表于 2022-5-19 17:07 | 显示全部楼层 |阅读模式
一、前言

基础篇(一)中介绍了对timeline大体的扩展,本文将会着重优化timeline相关的一些细节,让timeline不仅好用且更美观。走起!
二、具体扩展

这部分内容挺简单的,都是些小细节,就不多说废话了,直接上干货!介绍前先知会下大家,笔者的timeline版本为1.4.8,不同版本略有不同,大家用时注意一下!
2.1上下文菜单优化

关于此部分,主要的优化是自定义菜单的内容。效果如图1,图2,所示。想要做到这个效果很简单,只需要在track子类或者signalEmitter子类上加上[DisplayName("自定义名称")]特性即可。但光这样是无法实现图1中的分级菜单效果的,如果想加分级菜单还需要在类前加上[MenuCategory("菜单名")]特性,而MenuCategoryAttribute为内部类,所以大家需要先把它改为public才可以使用,图1中效果举例的代码见图3。



图1 轨道上下文菜单



图2 clip上下文菜单



图3上下文菜单扩展代码

2.2 Track轨道图标优化

效果如图4,给自定义的轨道加一个图标,增加辨识度。方法很简单,只需要在Assets/Gizmos下,放一个png图片,名称为Track类的类型就可以了。举个例子,笔者自定义的UiDynamicEffectTrack类的设置如图5。



图4 轨道图标



图5 gizmoz文件夹展示

2.3关于Clip部分效果的扩展

需要继承ClipEditor,并加上CustomTimelineEditor,经常扩展编辑器的同学应该很容易看懂,以下代码块1为位更改clip名字的案例,效果如图6,可以参考下代码。平常大家可以看看基类可以重载的方法,从而实现更多的效果。
同理也可以扩展Track,如代码段2,只不过基类是TrackEditor。
扩展Signal,如代码段3,只不过基类是MarkerEditor。
代码块1:
[CustomTimelineEditor(typeof(ChangeAlphaEffect)), UsedImplicitly]
class ChangeAlphaAssetEditor : ClipEditor
{
    public override void OnClipChanged(TimelineClip clip)
    {
        if(clip.asset is IDynamicChangeName changeNameClass)
        {
            clip.displayName = changeNameClass.GetChangedName();
        }
    }
}
代码块2:
[UsedImplicitly]
[CustomTimelineEditor(typeof(NarratageTrack))]
public class NarratageTrackEditor: TrackEditor
{
        
}
代码块3:
[CustomTimelineEditor(typeof(EventSignalEmitter))]
class EventSignalEmitterTimelineEditor : MarkerEditor
{
    public override MarkerDrawOptions GetMarkerOptions(IMarker marker)
    {
        var options = base.GetMarkerOptions(marker);
        EventSignalEmitter emitter = (EventSignalEmitter)marker;
        options.tooltip = emitter.eventType.ToString();
            
        return options;
    }
}



图6 clip改变名称效果

2.4关于检视版部分的扩展

这部分和平常扩展monobehaviour脚本的检视版一样,可以参考下timeline package源码中AnimationTrackInspector等,就不多说了,都是大家扩展编辑器过程中的常规操作。
三、结语

对于经常扩展编辑器的同学来说,本文可能太简单了,对此只能抱歉的说声,打扰了!目前笔者还没有其他好的用于扩展timeline的灵感,本题材先就此打住吧,将来如果有了好的灵感,或者比较骚的玩法在更新(三)!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-16 08:45 , Processed in 0.091406 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表