Unity Animator状态切换打断探索

一、前言

最近在研究animator的时候Interruption Source用法的耗费了我很长时间,因为在了解的过程中在网上大多都是官方文档的译文,首先感谢我参考的译文,但是按照译文操作测试结果和官方结果并一样,于是作为一个挠头的程序员又在不断搜索,最终发现救命稻草,其中
神来之笔
这句话点醒了我,小菜鸟恍然大悟。

二、错误思考

首先解释下我测试结果测试的原因,对于animator初步了解把下图红色框的过程当做了切换过程。所以我在刚触发A-B时就立即触发A-C,即Interruption没有效果, 后来恍然大悟后才理解原来只有黄色框的部分是状态切换的过程,即只有在黄色框的时间内改变状态,Interruption才有效。错误演示

三、Unity功能意义思考

理解了过渡时间后也想通了Interruption状态切换打断属性存在的意义:animator的每一个状态切换时间段都分了三部分:1、切换前 2、切换中 3、切换后 分别对应下图的红黄蓝区域
红黄蓝图
以下所有测试专用图
1、切换前:举个栗子言之 触发A-B状态后,不管触发A-C还是A-D,都会切换状态,但是触发B-D或者C-D都不行,因为此时状态机执行的动画是A,所以无法切换

2、切换后:触发A-B,在状态切换完成后,即时间处于蓝色区域,这时候状态机执行B动画,以后就可以由B切换到其他状态

3、切换中:切换前和切换后期间都可以切换状态,那么问题来了,切换中可以吗,切换规则是什么呢,这就是Interruption的意义

四、Interruption详解

参考上文中推荐译文,测试时一定要注意打断状态的时间