Unity3D控制Animator播放

有一个需求,要求第一次打开一个界面触发一个动画播放,关闭界面动画播放关闭,再次打开界面继续上次到播放而不是重新开始播放,如果动画播放结束关闭打开界面入口(即无法在此进入该界面)。

有两种实现方法:

方法1:第一次打开界面开始播放特效动画,调用animator.Play("fx_name")方法,同时获取该动画的播放时长(如果自由一个播放面片的话:animator.GetCurrentAnimatorClipInfo(0)[0].clip.length),启动计时器或者在Upata函数中做逻辑处理,当动画播放结束关闭界面。当动画播放未结束而关闭界面的时候把界面的坐标移动到远处而不是关闭界面,因为一旦关闭界面再次打开的时候特效播放会重新开始。

方法2:第一次打开界面获取上次关闭界面时间,与当前时间做差获得一个时间差,获取当前动画的播放时长,比较两个值,若时间差大于播放时长,重新播放动画,若小于说明还得继续上次播放,调用animator.Play("fx_name",-1, 时间差/播放时长) 或者 animator.PlayInFixedTime("fx_name",-1, 播放时长-时间差) 。当动画播放未结束而关闭界面的时可以直接关闭界面,但是需要记录下关闭界面时间。

 当然,也可以通过animator.setTime(x)来改变动画的播放时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值