Unity中动画切换

在Unity中,3D模型动画切换可使用Animator状态机或API如Animator.CrossFade进行。状态机方式直观但繁琐,需连线并配置参数。API切换更灵活,但需要编程控制。Animator.CrossFade和CrossFadeInFixedTime的区别在于时间参数处理,前者基于动画片段长度,后者为固定秒数。
摘要由CSDN通过智能技术生成

在unity中,3D模型的切换可以使用animator状态机或者代码切换Animator.CrossFade切换函数

使用状态机切换

需要连接各个动画的逻辑关系,并且添加切换参数,设置退出时间,调整切换持续时间等。然后直接使用切换参数SetTrigger等切换。

优点就是直观,方便编辑。缺点就是连线太多,繁琐。

使用API切换

api切换的优点就是不用连线,直接使用代码切换,并且能够实现过渡效果。缺点就是不直观,并且各个动画过渡参数不一样,可能需要配置。

这里有两个API,分别是Animator.CrossFadeAnimator.CrossFadeInFixedTime

两个api功能一样,Fixed不同之处在于,其中的参数为固定秒数;CrossFade中的时间,都是基于动画片段的长度归一化设置的。

public void CrossFade(string stateName, float normalizedTransitionDuration, int layer = -1, float normalizedTimeOffset = float.NegativeInfinity, float normalizedTransitionTime = 0.0f);

stateName:动画名称。切换至目标动画片段

normalizedTransitionDuration:切换持续时间。切换到目标动画,切换过程需要消耗的时间

layer:层。目标动画层

normalizedTimeOffset:时间偏移。切换到目标动画的位置,例如切换到目标状态的0.5(动画50%处)

normalizedTransitionTime:切换时间。不太清楚这个值具体表示什么,(测试了一下,如果近1,则直接到目标状态,没有过渡。近0,则有过渡,其他切换参数生效。有懂的可以给我说说)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值