首页 > 其他分享 >Unity开发笔记-Timeline扩展笔记(1)

Unity开发笔记-Timeline扩展笔记(1)

时间:2022-11-14 15:45:15浏览次数:52  
标签:clip Timeline void 笔记 override Unity var TimelineClip public

ILayerable

代码修改动画后推
public static void SetTimeClipExtrapolation(TimelineClip clip,TimelineClip.ClipExtrapolation extrapolation)
{
var type = clip.GetType();
var property = type.GetProperty("postExtrapolationMode");
property.SetValue(clip,extrapolation);
}

TrackAsset内获取绑定对象

public override Playable CreateTrackMixer(PlayableGraph graph, GameObject go, int inputCount)
{
    var director = go.GetComponent<PlayableDirector>();
    var animator = director.GetGenericBinding(this) as Animator;
}

在Clip上显示正确的AnimationClip长度

public override double duration
{    
    get    
    {        
        double length = TimeUtility.GetAnimationClipLength(animationClip);        
        if (length < float.Epsilon)            
            return base.duration;        
        return length;    
    }
}

自定义背景

public class AnimationExtClipEditor:ClipEditor
    {
        public override void DrawBackground(TimelineClip clip, ClipBackgroundRegion region)
        {
            base.DrawBackground(clip, region); 
            
            var ac = clip.asset as AnimationExtClip;
            var blendTime = ac.template.BlendTime;
            if (blendTime <= 0)
            {
                return;
            }

            if (clip.hasBlendIn)
            {
                return;
            }
            var duration = clip.duration;
            float left = region.position.xMin;
            float max = region.position.xMax;
            float right = blendTime / (float)duration * max;
            right = Mathf.Min(right, max);
            var rect = Rect.MinMaxRect(left, region.position.yMin, right, region.position.yMax);
            EditorGUI.DrawRect(rect, Color.green);
        }
    }

外推对Behaviour逻辑的影响

超过Clip范围,外推时State还是Playing
会改变Duration

seekOccur问题

mixer为true,clip对应的behaviour为false

设置TimelineClip的Extrapolation属性

public static void SetTimeClipExtrapolation(TimelineClip clip,TimelineClip.ClipExtrapolation extrapolation)
{
    var type = clip.GetType();
    var property = type.GetProperty("postExtrapolationMode");
    property.SetValue(clip,extrapolation);
}

Clip上显示的文字改变

继承ClipEditor

public override void OnClipChanged(TimelineClip clip)
{
    base.OnClipChanged(clip);
    var extClip = clip.asset as AnimationExtClip;
    if (extClip == null)
    {
        return;
    }

    if (extClip.animationClip != null)
    {
        clip.displayName = extClip.animationClip.name;
    }
}

代码中设置ExposedReference<T>


string guid = GUID.Generate().ToString();
ExposedReference<CinemachineVirtualCameraBase> cam;
cam.exposedName = guid;

标签:clip,Timeline,void,笔记,override,Unity,var,TimelineClip,public
From: https://www.cnblogs.com/terrynoya/p/15989384.html

相关文章

  • 『NLP学习笔记』如何理解attention中的Q,K,V
    如何理解attention中的Q,K,V?文章目录​​一.如何理解attention中的Q,K,V?​​​​1.1.定义三个线性变换矩阵​​​​1.2.定义QKV​​​​1.3.自注意力计算​​​​1.3.1......
  • java基础笔记
    java的数据类型分为两大类  进制前缀二进制:0b八进制:0十六进制:0xJava会直接将它们转换为十进制输出 float、double并不能准确表示每一位小数,对于有的小数只能无......
  • Navicat使用笔记08---利用Navicat进行数据迁移
    1.使用背景需要将一台服务器上mysql数据迁移到另一台服务器的mysql中2.单库迁移2.1在目标服务器中创建一个和源服务器数据库名称一样的数据库2.2创建任务开始迁移......
  • C基础学习笔记——01-C基础第13天(文件下)
    在学习C基础总结了笔记,并分享出来。01-C基础第13天(文件下)目录:(1)按照块读写文件fread、fwrite1)写文件2)读文件3)强化训练:大文件拷贝(2)文件的随机读写(3)Windows和Linux文本文件区别......
  • C基础学习笔记——01-C基础第07天(字符串处理函数和函数)
    在学习C基础总结了笔记,并分享出来。01-C基础第07天(字符串处理函数和函数)目录:一、字符串处理函数(1)gets()(2)fgets()(3)puts()(4)fputs()(5)strlen()(6)strcpy()(7)strncpy()(8)strcat()(9)str......
  • C基础学习笔记——01-C基础第02天(用户权限、VI操作、Linux服务器搭建)
    在学习C基础总结了笔记,并分享出来。01-C基础第02天(用户权限、VI操作、Linux服务器搭建) 打开终端:ctrl+alt+t清屏:ctrl+l或clear在终端中退出锁定:ctrl+c 目录3常用命令4......
  • 【做题笔记】CF1528B Kavi on Pairing Duty
    ProblemCF1528BKavionPairingDuty题目大意:在数轴上有\(2n\)个点,相邻两个点的距离为\(1\)。现在要将这些点两两匹配成\(n\)个圆弧,要求任意两个圆弧要么等长,要么......
  • 概率期望 DP 学习笔记
    期望这东西学了一次忘了,再学一次过了两天又不会了。我是鱼。故写此博客以便加深记忆及日后复习。经典问题1某事件发生概率为\(p\),则该事件首次发生的期望次数为\(\fr......
  • k8s工作原理(chrono《kubernetes入门实战课》笔记整理)
     【架构理解】k8s可以编排容器,也可以对服务器进行监管。在k8s,不会区分dev(开发人员)和ops(运维人员),而是devops(提倡开发时就要考虑运维,运维也要尽早开始考虑如何对应用进行运......
  • 【网络】安装Nginx笔记
    目录前言安装前先更新下安装依赖库下载NginxNginx编译配置编译&安装&验证nginxNginx服务配置配置SSL参考前言up安装nginx主要是为了在服务器上做反向代理。有兴趣的同学......