==========================================SendMessage***=========================================
使用反射写一个SendMessageUpwards->https://blog.youkuaiyun.com/MikuLingSSS/article/details/83474987
Unity里面的SendMessage是一个非常好用的方法,他的调用方式是 gameobject.SendMessage(“MethodName”,object t); 他会查找当前物体里面所有的脚本,并且根据反射查找与方法名和参数列表一致的方法并且执行,我一般会将其用在动画状态之中
如上,如果我想要在动画执行开始,或是执行过程中执行某个方法,就可以直接添加一个Method,代码中会自动帮我执行这个方法,当然,前提是我必须要有这个公共方法。
好处:执行起来方便,调用简单,不需要我们写那么多的代码去完成一个委托或是反射
坏处:执行花费内存比较大(毕竟你知道目标在哪,和一个个问差别还是蛮大的),如果动画状态过多,或是使用较多,一旦方法出现BUG,查找起来会很麻烦
=========================================动画中的Event==========================================
动画中的Event和SendMessage差不多,都是查找本物体的公共方法,但是动画中的Event拥有自己的曲线,我们可以选择性的决定他什么时候,什么帧数执行
选择你需要放置事件的动画,将滚动条拉到低端
可以看到,我们可以直接控制动画的播放,让其在我们需要的地方添加执行的事件,注:当你创建事件并设置好参数时,记得点一下Apply
========================================Animation事件=============================================
有一些老版的动画是没有办法设置Event的,这个时候我们就必须自己找到Animation组件去设置事件,方法为先打开Animation创建面板 Window => Animation ,之后选中Project面板中你想要设置事件的动画,