FairyGUI笔记:动效(二十三)

  • Transiton

动效的播放在代码中启动

Transition trans = aComponent.GetTransition(“peng”);
trans.Play();

Play有多种原型,例如可以重复播放一定次数,可以在播放结束时回调等。例如

//结束时有一个回调,但需注意,如果动效里有嵌套的动效,或者有循环的内容,必须是等全部都结束后才会回调。
trans.Play(callback);

例如可以播放动效的一部分,通过指定时间范围

//播放0.5秒-1.5秒部分的动效,即0.5秒(包含)-1.5秒(包含)之间的所有帧。
trans.Play(1, 0, 0.5, 1.5);

时间范围可以硬编码,也可以通过标签指定,通过GetLabelTime可以获得某个标签所在时间点。也可以倒着放,但要注意倒着放之前要先执行一次正着放。

trans.playReverse();

动效可以暂停

//暂停动效播放
trans.setPaused(true);
//恢复动效播放
trans.setPaused(false);

要中途停止动效的播放,可以调用:

trans.Stop();

Stop方法也可以带参数,原型:

public void Stop(bool setToComplete, bool processCallback);

setToComplete表示是否将组件的状态设置到播放完成的状态,如果否,逐渐的状态就会停留在当前时间。processCallback是否调用Play方法传入的回调函数。

注意:UI动效播放完成后,组件的状态将停留在最后一帧,如果你希望动效完成后组件的状态恢复到播放前,你需要最后添加一帧重新设置组件的状态。例如一个动效,设计是透明度经过1秒变到0,那么动效播放结束后透明度就是0.有人会问怎样才能让动效播放完了回到第一帧,也就是透明度要等于1,那很简单,在透明度时间轴最后加一帧,设置透明度为1,那么动效播放完了透明度就是1了。

如果需要修改某个关键帧的属性值,可以使用:

//例如某帧的标签为aa,这帧是设置某个元件的XY值的,将XY的数值改为100,200。
trans.SetValue("aa", 100, 200);

可以修改某个Tween的持续时间,但修改某个Tween的时间不会使后续的Tween推迟。

//修改某个Tween的持续时间为0.5秒。注意,标签应该定在Tween的开始关键帧上。
trans.SetDuration("aa", 0.5f);

可以在动效运行到某帧时触发一个回调,例如:

//运行到标签为aa的关键帧时,触发一个callback的回调。
trans.SetHook("aa", callback);

在Unity中,动效的播放速度默认是不受Time.timeScale影响的,但你也可以设定它受影响:

trans.ignoreEngineTimeScale = false;

也可以单独设置动效的timeScale,例如:

//动效播放的速度将会是原来的一半。
trans.timeScale = 0.5f;

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值