Unity3D——在Unity3D中使用关键帧动画的注意事项

1、记录Animation动画复位的一个注意事项
最近想做一个动画的分步播放,但是在实现动画复位时发现以前用的动画复位的代码不起作用了:

@Animation = AnimationObj.GetComponent<Animation>();
AniState = @Animation[ClipName];
AniState.time = 0;      
@Animation.Sample();           
@Animation.Stop(ClipName);
AniState.enabled = false;

经查,原因是动画分步播放结束后我使用了:

@Animation.Stop(ClipName)

来停止动画播放,在动画已经停止播放的情况下是无法使用以上代码进行复位的,需要先播放动画,再复位,因此需要加一行代码:

@Animation.Play(ClipName);
AnimationState AniState = @Animation[ClipName];
AniState.time = 0;  
@Animation.Sample(); 
@Animation.Stop(ClipName); 
AniState.enabled = false;

这样就可以正常复位了,记录下来怕自己忘了

2、在做动画的分布播放时,发现unity中播放关键帧动画仅播放至最后一个关键帧。举个例子,若动画总长1700帧,但是最后一个关键帧打在了第1660帧,则该动画在unity中会被认为仅有1660帧,这就要求在计算每个关键帧的归一化时间时需要将分母设为1660而不是1700,不然会发现在unity中分步播放动画时动画的实际进度与设想的不同

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值