Trigger的特点
众所周知,Animator的Trigger和Bool的区别是,Trigger是一次性触发判断,触发后会自动重置,而Bool是持久性变量,所以使用Trigger图的就是自动重置的功能。
使用例子
举个简单的例子,这是一个宝箱的Animator
例子中的Animator初始状态为idle,设置触发器Open则跳转到状态open,设置触发器Idle则跳转到状态Idle。
由于Trigger是消耗型参数,所以参数只有在使用后才会发生重置。所以以下的两种写法最后都会得到相同的结果。
- 写法一
1 | animator.SetTrigger("Open"); |
- 写法二
1 | animator.SetTrigger("Idle"); |
原因是方法二设置Idle触发器后并没有发生消耗,等到切换到open状态后才开始判断,消耗Idle触发器,跳转到idle状态,得到和方法一一致的效果。