当前位置:网站首页>【Unity】Timeline学习笔记(七):自定义片段(Clip)
【Unity】Timeline学习笔记(七):自定义片段(Clip)
2022-07-28 16:34:00 【至肝主义圈毛君】
一// 继承PlayableAsset类,实现ITimelineClipAsset接口
正如自定义轨道(Track)需要继承TrackAsset类那样,自定义片段(Clip)也要遵守一定的模板:继承PlayableAsset类,以及实现ITimelineClipAsset接口。
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;
public class LearnClip : PlayableAsset, ITimelineClipAsset
{
}在写好类的头部后,会出现红色波纹线提示我们出错。
快捷键 Alt + Enter 修补错误后,代码中会多出一个属性(Property)和方法(Function)。
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;
public class LearnClip : PlayableAsset, ITimelineClipAsset
{
public ClipCaps clipCaps
{// ITimelineClipAsset接口的实现需求
get
{
throw new System.NotImplementedException();
}
}
public override Playable CreatePlayable(PlayableGraph graph, GameObject owner)
{// PlayableAsset类的继承需求
throw new System.NotImplementedException();
}
}
二// ClipsCaps属性
遇到陌生的名称不用慌,先查看ClipCaps的文档。

可以看到,ClipCaps中的内容都是与Clip相关的操作,印象不深的朋友可以看这篇。
当我们写
时,
片段在检视窗的内容是这样——

【补充很重要的一点,因为这些参数都需要在检视窗可以调节,所以应该给这个类添加Serializable属性】
而当我们写
时,
检视窗的内容就少很多了——

所以 ClipCaps 的意义就是:被允许的功能将可以在Inspector被编辑,这些功能都是与Clip相关的操作。
三// CreatPlayable方法
\
CreatePlayable 方法不能单独地看,但它的总体意思就是创建一个Playable,然后插入到PlayableGraph。
它有两个参数:graph指示要插入的Graph;owner则是被创建的Playable的来源。
四// PlayableBehaviour 与 ScriptPlayable
用户自定义的所有Playable都必须继承自PlayableBehaviour类,在自定义片段的脚本中,它需要搭配ScriptPlayable使用。
所以一个自定义Clip脚本的框架基本如下面的代码:
using System;
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;
[Serializable] // 序列化
public class DialogueClip : PlayableAsset, ITimelineClipAsset
{
public DialogueBehaviour template = new DialogueBehaviour (); // 一般都将变量命名为template
public ClipCaps clipCaps
{// 检视窗可调节的功能
get { return ClipCaps.None; }
}
public override Playable CreatePlayable (PlayableGraph graph, GameObject owner)
{// 创建Playable
var playable = ScriptPlayable<DialogueBehaviour>.Create (graph, template); // 真正用来创建Playable的语句
//...这里还可以有一些赋值操作...//
return playable; // 返回创建的Playable,Clip脚本任务完成
}
}
边栏推荐
猜你喜欢

The easy-to-use special app testing tool itest4.7.0 has been released

都说软件测试是IT行业最差的,是这样的吗?

2021 National Undergraduate data statistics and Analysis Competition

R语言画图/绘图/作图2

数据库性能分析与优化(爱测未来团队内训材料)
![【C语言进阶】——剖析入微数据在内存中的存储[上]](/img/6a/ac723cee2543cd2403a7e58d556c8e.png)
【C语言进阶】——剖析入微数据在内存中的存储[上]
![[untitled]](/img/86/d284eec4eda6a41676d7455b7ea70b.png)
[untitled]

Can you read the story?

小白必看的软件测试发展路线

Arya professional web automated test platform
随机推荐
软件测试前景如何?该如何进行学习呢?
阿里云天池大赛赛题解析(深度学习篇)--阅读笔记1--赛题一
In depth sharing of Ali (ant financial) technical interview process, with preliminary preparation and learning direction
软件测试培训一般多少钱?
.net MVC的理解
都说软件测试是IT行业最差的,是这样的吗?
三维点云处理系列----PCA
关于非递归和递归分别实现求第n个斐波那契数
电工学自学笔记1.22
mmdetection3d(3)---网络输出
clang format
JVM性能调优
Punctual atomic serial port protocol
零基础转行软件测试到底能不能行?
Jdwp unauthorized rapid utilization
@RequestMapping详解
软件测试和软件开发应该怎么选择?
C#中virtual(虚方法)的理解以及和abstract(抽象方法)的区别
Database performance analysis and optimization (internal training materials of Aite future team)
hgu95av2.在线安装失败