PlayableAPI学习笔记(待续..)

Graph相当于一个AnimatorController或者Manager的作用,负责管理Playable的生命周期
所有类名有Playable的,创建都需要使用.Create,不是直接new
创建混合器
需要先创建一个MixerPlayable

//可以在一开始时指定端口数量
//AnimationMixerPlayable mixer1 = AnimationMixerPlayable.Create(graph1, 2);
//也可以在后面再设置端口数量,但是一定要设置,否则会报错!
//端口供后面图连接使用
AnimationMixerPlayable mixer1 = AnimationMixerPlayable.Create(graph1);
mixer1.SetInputCount(2);

//图连接端口,端口的连接相当于电器于排插的连接
//sourceOutputPort相当于一个电器可能有好几条线,需要选择第几条线插上去
//destinationInputPort相当于指定这个电器能插到第几个插孔上
//注意这里的端口位置一定要在给定的数量内,超过会报错
graph1.Connect(idlePlayable, 0, mixer1, 0);	//(个人见解:第一个0表示要拿idlePlayable的第0个,第二个0表示要连接到第0个位置上)
graph1.Connect(winPlayable, 0, mixer1, 1);
//函数声明
public bool Connect<U, V>(U source, int sourceOutputPort, V destination, int destinationInputPort)
            where U : struct, IPlayable
            where V : struct, IPlayable;

注意事项:
1.注意使用了Mixer混合器后,不管是什么Mixer,都需要设置InputWeight,否则Play后没有效果!
2.在playable.Create时,传入的参数一定是要初始化完成的,否则后面再设置就无法起作用
比如:AnimationClipPlayable idlePlayable = AnimationClipPlayable.Create(graph, idle);
如果在调用这段代码时idle为空,那么后面再设置idle也无法正常播动画

playable.ConnectInput和graph.Connect是等价的

//这和下面的graph.Connect是等价的
mixer.ConnectInput(0, idlePlayable, 0);
graph.Connect(idlePlayable, 0, mixer, 0);

3.(重点) 只有Playble才具有Input和Output,而从属于PlayableOutput的则没有,例如AnimationClipPlayable<T>是有Input和output的,而AnimationPlayableOutput是没有Input和Output的。所谓的Input表示Playable的子节点,而Output表示当前Playable的父节点,如下图所示,在左边的为Output,在右边的为Input。注意Mixer也属于是Playable
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值