事件起因:当切换武器后(更换状态机),状态机对应的行为脚本上的技能绑定id 并没有得到改变,还是切换之前的。理论上是说不通的,因为这个是两个对象的脚本
先上两幅图说明下
这里我们改变的就是这个MainActor_Man_Quan 的地方,如果改编成了其他状态机,那么这状态机上的动作对应的技能id依然是老的
下图说明了该状态机上的一个动作对应的行为脚本
当我们打印切换前后的InstanceID 你会发现他们是一样的,所以我断定这个应该是unity的bug,为什么这么说呢,因为当我在编辑起码随便改变一下状态机里面的状态的位置,那么这个InstanceID就会得到刷新,也就是会对应到我们的动作上去,而如果是直接更换则不会刷新。当我翻阅了一下unity官方的文档的时候发现这个根本在运行的时候没有任何可以去刷新的地方,所以我们只能删掉Animator 然后再重新装上去,用来做到更换。