Unity Timeline学习笔记(2) - PlayableTrack

PlayableTrack 是可自定义播放的轨道。我们可以通过进入轨道后调用自己的函数方法,使用起来也是比较顺手的。

添加轨道

我们点击加号添加
在这里插入图片描述
这样就有一个空轨道了,然后我们创建两个测试脚本。

添加脚本

在这里插入图片描述
分别是Playable Behaviour和PlayableAsset脚本。
Asset脚本是可以拖动到轨道上的,通过Asset脚本来调用Behaviour脚本的方法,直接贴上脚本:

首先是PlayableAsset

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Playables;[System.Serializable]
public class PlayableAssetTest : PlayableAsset
{public string testName;public int testInt;// Factory method that generates a playable based on this assetpublic override Playable CreatePlayable(PlayableGraph graph, GameObject go){//return Playable.Create(graph);PlayableTest t = new PlayableTest();t.testName = testName;t.testInt = testInt;return ScriptPlayable<PlayableTest>.Create(graph, t);}
}

他在CreatePlayble的时候,我们实例化Playable Behaviour脚本,并传入想传入的参数。

Playable Behaviour的代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Playables;// A behaviour that is attached to a playable
public class PlayableTest : PlayableBehaviour
{public string testName;public int testInt;// 当开始运行Timeline的时候public override void OnGraphStart(Playable playable){Debug.Log("TimeLine 开始播放");}// 当停止运行Timeline的时候public override void OnGraphStop(Playable playable){Debug.Log("TimeLine 停止播放");}// 当进入区域内触发Playpublic override void OnBehaviourPlay(Playable playable, FrameData info){Debug.Log($"进入滑块区域内{testName},Int:{testInt}");}// 当出了区域触发,或者开始的时候触发,或者停止运行的时候public override void OnBehaviourPause(Playable playable, FrameData info){Debug.Log($"Pause{testName},Int:{testInt}");}// 在区域内每个Frame地方都会触发public override void PrepareFrame(Playable playable, FrameData info){//Debug.Log("PlayableTest PrepareFrame");}
}

然后我们把PlayableAssetTest 拖入轨道
在这里插入图片描述
轨道的长度位置和动画一样来调整就可以了,

运行结果和总结

我们运行看看这些函数是如何触发的。
在这里插入图片描述

我们看到在编辑器运行后,首先进入的就是OnGraphStart和OnBehaviourPause。
当播放到脚本块后,刚进入就进入了OnBehaviourPlay,当播放出了脚本块后会调用OnBehaviourPause,当整个Timeline结束后会调用到OnGraphStop。

基本上都很好理解,只有这个OnBehaviourPause比较特殊,相当于Timeline在调用播放激活的时候会调用一次,不管是不是在当前滑块范围内(滑块在第一帧)。然后当出了滑块区域会调用一次。或者Timeline被强制停止播放都会。

这里和信号(Signal Track)有很大分别,大家在使用的时候就知道如果某些东西只有在Timeline周期处理的用PlayableTrack比较合适,某些点可以用信号轨道。

PrepareFrame就更好理解了是每一帧都会进入。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/540727.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

202112 CSP认证 | 登机牌条码

登机牌条码 这个题的难度相比于神经脉冲网络感觉是往两个方向&#xff0c;该题没有太多的注重时间和空间的优化&#xff0c;重难点在于实现矩阵除法&#xff0c;也就是算法逻辑。 借鉴了这个链接实现&#xff1a;登机牌条码 详细图解 链接详细讲述了如何实现矩阵除法以及矩…

3分钟阿里云数据库购买、数据库创建和连接教程

阿里云数据库怎么使用&#xff1f;阿里云服务器网aliyunfuwuqi.com整理阿里云数据库从购买到使用全流程&#xff0c;阿里云支持MySQL、SQL Server、PostgreSQL和MariaDB等数据库引擎&#xff0c;阿里云数据库具有高可用、高容灾特性&#xff0c;阿里云提供数据库备份、恢复、迁…

快递查询轻松搞定:一键查询,物流信息尽在掌握

在快节奏的现代生活中&#xff0c;快递已成为我们日常不可或缺的一部分。但你是否曾因为繁多的快递单号而烦恼&#xff0c;想要轻松掌握每一个包裹的物流信息&#xff1f;现在&#xff0c;一款名为“快递批量查询高手”的神器应运而生&#xff0c;它将帮助你轻松搞定快递查询&a…

语义分割前言

1.常见数据集 1.1PASCAL VOC 其标注图片为单通道图像&#xff0c;其0~255像素值为其取值范围&#xff0c;背景为0&#xff0c;目标区域内根据目标的类别索引信息进行填充。 1.2MS COCO 其标注图像的标注文件为坐标信息。 官网有给出一个关于标注文件的格式说明&#xff0…

计算机毕业设计-springboot+vue前后端分离电竞社交平台管理系统部分成果分享

4.5系统结构设计 本系统使用的角色主要有系统管理员、顾客、接单员&#xff0c;本系统为后台管理系统&#xff0c;游客用户可以经过账号注册&#xff0c;管理员审核通过后&#xff0c;用账号密码登录系统&#xff0c;查看后台首页&#xff0c;模块管理&#xff08;顾客信息&am…

SpringBoot3整合Mybatis-Plus与PageHelper包冲突解决

&#x1f60a; 作者&#xff1a; 一恍过去 &#x1f496; 主页&#xff1a; https://blog.csdn.net/zhuocailing3390 &#x1f38a; 社区&#xff1a; Java技术栈交流 &#x1f389; 主题&#xff1a; SpringBoot3整合Mybatis-Plus与PageHelper包冲突解决 ⏱️ 创作时间&a…

位运算#蓝桥杯

位运算#蓝桥杯 文章目录 位运算#蓝桥杯1、小蓝学位运算2、异或森林3、位移4、笨笨的机器人5、博弈论 1、小蓝学位运算 #include<bits/stdc.h> using namespace std; using LL long long; const LL N 1e97; template<int kcz> struct ModInt { #define T (*this)…

小程序(H5)连接微信公众号

报错信息 配自定义菜单 微信公众号没有配“白名单” 配业务域名

echats柱状图\折线图:数量级自动调整;动态设置多维度

通过构造echarts返回体EchartsData.class&#xff0c;在返回体内开发功能代码&#xff0c;实现echarts数据的改动。 特点&#xff1a; 1、y轴数据的数量级自动调整&#xff0c;使图表变化趋势更明显&#xff1b; 2、支持多维度数据【可以有1-N多个维度】 // EchartsData对象构…

Yolo系列算法-理论部分-YOLOv5

0. 写在前面 YOLO系列博客&#xff0c;紧接上一篇Yolo系列算法-理论部分-YOLOv4-CSDN博客 1. YOLOv5-美而全的产品 YOLOv5的诞生&#xff0c;直接将目标检测算法向终局推进&#xff0c;Ultralytics团队在COCO数据集上预训练的目标检测架构和模型直接开源&#xff0c;其中包含了…

世纪互联版Microsoft 365应用无法跳转正确登录门户

很多购买世纪互联&#xff08;国内版&#xff09;Microsoft 365&#xff08;Office 365&#xff09;的用户有时候会遇到在Office应用登录账号时&#xff0c;登陆页面跳转到国际版Microsoft Entra ID&#xff08;Azure AD&#xff09;页面&#xff08;没有备案号&#xff09;&am…

Supervisor,一个超酷的 Python 库!

大家好&#xff0c;今天为大家分享一个超酷的 Python 库 - supervisor。 Github地址&#xff1a;https://github.com/Supervisor/supervisor 在大型项目中&#xff0c;经常需要管理多个进程&#xff0c;确保它们能够稳定运行并协同工作。Python提供了许多工具和库来帮助实现进…