资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

Unity3D中如何通过Animator动画状态机获取任意animationclip的准确播放持续时长

这篇文章将为大家详细讲解有关Unity3D中如何通过Animator动画状态机获取任意animation clip的准确播放持续时长,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

站在用户的角度思考问题,与客户深入沟通,找到安顺网站设计与安顺网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、成都做网站、企业官网、英文网站、手机端网站、网站推广、域名申请雅安服务器托管、企业邮箱。业务覆盖安顺地区。

Unity3D中如何通过Animator动画状态机获取任意animation clip的准确播放持续时长

Unity3d 4及之前的版本中动画的播放用的animation,可直接获取其播放持续长度。但5.x及以后的版本中都是用animator来播放动画了。

https://docs.unity3d.com/Manual/AnimationOverview.html 

While Mecanim is recommended for use in most situations, Unity has retained its legacy animation system which existed before Unity 4. You may need to use when working with older content created before Unity 4. For information on the Legacy animation system, see this section

关于在animator下如何获取其播放持续时长,很多人用的 GetCurrentAnimatorStateInfo 及 GetNextAnimatorStateInfo 等,但这个都不是最终核实的解决方案。

如下才是通过Animator动画状态机获取任意animation clip的准确播放持续时长的正确的、准确的姿势:

///获取动画状态机animator的动画clip的播放持续时长
///@MarsZ 2017年12月19日20:46:20
///site:www.u3dnotes.com
public static class AnimatorExt 
{
	public static float GetClipLength(this Animator animator,string clip) 
	{
		if(null== animator || string.IsNullOrEmpty(clip) || null== animator.runtimeAnimatorController)
		          return 0;
		RuntimeAnimatorController ac = animator.runtimeAnimatorController;
		AnimationClip[] tAnimationClips =  ac.animationClips;
		if( null == tAnimationClips || tAnimationClips.Length <= 0) return 0;
		AnimationClip  tAnimationClip ;
		for (int tCounter = 0 ,tLen = tAnimationClips.Length; tCounter < tLen ; tCounter ++) 
		{
			tAnimationClip = ac.animationClips[i];
			if(null != tAnimationClip && tAnimationClip.name == clip)
			              return tAnimationClip.Length;
		}
		return 0F;
	}
}

关于“Unity3D中如何通过Animator动画状态机获取任意animation clip的准确播放持续时长”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


文章名称:Unity3D中如何通过Animator动画状态机获取任意animationclip的准确播放持续时长
路径分享:http://cdkjz.cn/article/jdieed.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220