1.动画过渡
将两个动画拖入Animator里面,设置两个Tigger条件。
选择一个转换
属性说明
Property | Function |
Has Exit Time 可以退出时间 |
退出时间是一个不依赖于参数的特殊转换。他把状态转化的时间依托在状态时段上,等状态结束才会切换状态 |
Settings | Fold-out menu containing detailed transition settings as below. |
Exit Time 退出时间 | 如果已检查退出时间,则此值表示转换可以生效的确切时间。这在标准化时间中表示(例如,0.75的退出时间意味着在第一帧中,75%的动画已经播放,退出时间条件为true)。在下一帧中,条件为false。 对于循环动画,每个循环的退出时间小于1的转换都会对每个循环进行评估,所以您可以使用这个时间来在每个循环中适当地计时0。 具有大于1的退出时间的转换仅进行一次评估,因此它们可以在固定数量的循环之后用于特定时间退出。例如,一个退出时间为3.5的转换被求值一次,在三个半循环之后。 |
Fixed Duration 固定时间 |
如果选中了固定时间框,则转换时间以秒为单位进行解释。如果固定时间框未选中,则将转换时间解释为源状态的标准化时间的一小部分。 |
Transition Duration 过度时间 |
过渡期,在标准化时间内,相对于当前状态的持续时间。这在过渡图中可视为两个蓝色标记之间的部分。. |
Transition Offset 过渡偏移 |
源状态转换到目标状态过程中的偏移时间。例如,值为0.5意味着目源状态开始以过载50%通过自己的时间线。 |
Interruption Source 中断源 |
使用此控件可以控制此转换可能中断的情况(请参阅下面的过渡中断)。 |
Ordered Interruption 命令中断 |
确定当前转换是否可以独立于其他转化中断(请参阅下面的过渡中断) |
Conditions 条件 | 一个转换可以有一个条件,多个条件,或者根本没有条件。如果您的转换没有条件,那么Unity编辑器只考虑退出时间,当达到退出时间时,转换就会发生。如果您的转换具有一个或多个条件,则必须在触发转换之前满足所有条件。
条件包括:
-事件参数(条件中考虑的值)。 -条件谓词(如果需要,例如,浮点数的“小于”或“大于”)。 -参数值(如果需要)。
如果您已经为转换选择了退出时间,并且有一个或多个条件,请注意Unity编辑器会在退出时间之后考虑条件是否为真。这允许您确保您的转换发生在动画的特定部分。 |
在A阶段,gameObject.GetComponent<Animator>().GetCurrentAnimatorStateInfo(0)的值为idle2
在B阶段,gameObject.GetComponent<Animator>().GetCurrentAnimatorStateInfo(0)的值为walk
看到这里,有同学已经感觉到了,这种动画过渡在实际应用中某些时候可能造成不便。但大部分情况下,他还是游刃有余的。
2.动画混合(混合树)
圣典文档:http://www.ceeger.com/Manual/AnimationBlendTrees.html
一维和二维:https://www.cnblogs.com/SHOR/p/5764014.html
实际应用案例:https://blog.csdn.net/qq_15020543/article/details/83277904
双击进入Inspector面板,把两个动画添加进去
即可通过改变Blend的值来实现动画的混合