Unity-动画-动画回调函数接口StateMachineBehaviour

1. 简介

当你想在状态机的某个状态执行中干些什么的时候(增加状态机行为)
比如:播放音效,添加粒子特效,增加逻辑代码等等操作。
那么就可以试一试Unity封装好的回调函数接口:StateMachineBehaviour

想要添加(State machine behaviours)状态机行为到状态或子状态机,可以选中某个状态后在inspector中的Add Behaviour按钮。

2. 使用该动画回调接口的前置条件

  • 必须继承StateMachineBehaviour
  • 脚本必须挂在到状态上

3. 回调函数接口一览

  • OnStateEnter
    进入该状态时调用

    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex){}
    
  • OnStateUpdate
    在该状态下每帧调用
    (MonoBehaviour Updates 更新后)

    override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex){}
    
  • OnStateExit
    在该状态结束退出时调用

    override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex){}
    
  • OnStateMove
    在Animator.OnAnimatorMove()执行后调用(普通动画开始播放后)

    override public void OnStateMove(Animator animator, AnimatorStateInfo stateInfo, int layerIndex){}
    

    用于实现处理和影响根运动的代码

  • OnStateIK
    在Animator.OnAnimatorIK()执行后调用(骨骼动画开始播放后)

    override public void OnStateIK(Animator animator, AnimatorStateInfo stateInfo, int layerIndex){}
    

4. 参数解释

  • Animator animator
    当前动画器,是这个状态机行为的引用。
  • AnimatorStateInfo stateInfo
    当前状态的详细信息

    • int fullPathHash
      当前状态的全路径哈希值
    • int nameHash
      当前状态名称的哈希值
    • int shortNameHash
      不包括父层名称的短名称哈希值
    • float normalizedTime
      状态的标准化时间
    • float length
      状态当前已经持续的时间
    • float speed
      动画播放速度(1为正常速度)
    • float speedMultiplier
      动画播放倍速
    • int tagHash
      标签的哈希值
    • bool loop
      当前状态是否循环
    • bool IsName(string name)
    • bool IsTag(string tag)
  • int layerIndex
    是状态机行为状态的layer 层

Unity-动画-动画回调函数接口StateMachineBehaviour相关推荐

  1. 从零开始学_JavaScript_系列(四)——jquery(基础,选择器,触发条件,动画,回调函数)...

    jQuery语法 (1)引用jquery文件及下载库: http://jquery.com/download/ 下载 Download the compressed, production jQuer ...

  2. jQuery 来了--动画,停止动画,回调函数Callback,链

    动画 animate()方法 作用:用于创建自定义动画 语法:$("selector").animate({params},speed,callback); 参数 params:必 ...

  3. Unity【NGUI】【UGUI】 动画效果实现,AnimationCurve曲线动画控制器,支持动画完成 回调

    动画效果如下: 展示图1 如下: 展示图2 如下: 展示图3 如下: 功能: 如上图所示 移动,旋转,缩放,渐变透明  都可并行实现 只要脑洞够大,创意动画效果随你实现. 注:所有动画都是用曲线[An ...

  4. Java中的回调函数学习-深入浅出

    Java中的回调函数一般来说分为下面几步: 声明回调函数的统一接口interface A.包括方法callback(); 在调用类caller内将该接口设置为私有成员private A XXX; 在c ...

  5. Java回调函数的理解

    所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数.例如Win32下的窗口过程函数就是一个典型的回调函数.一般说来,C ...

  6. 深入了解回调函数Java

    打回来.我第一次看到Java编程思想,后来Observer模式也适用于一个回调函数的想法.但是,一直没有重视,在处于劣势的最终面试,越来越明白为什么那么多人说Java编程思想,这本书应该是一遍又一遍, ...

  7. 回调函数总结(个人见解)

    回调函数总结(个人见解): 1.    回调函数的实现    ==>    被调用者写 2.    写库的人    ==> 调用回调函数的人 ==> 调用者 2.1    调用者: ...

  8. Java回调函数使用

    C语言中回调函数解释: 回调函数(Callback Function)是怎样一种函数呢? 函数是用来被调用的,我们调用函数的方法有两种: l         直接调用:在函数A的函数体里通过书写函数B ...

  9. java回调函数的生命_Java的回调函数 - choaklin 的个人空间 - OSCHINA - 中文开源技术交流社区...

    暂且不提回调函数的各种定义,如我本人,虽然知道JavaScript的回调的使用,但是百科了回调的定义,还是觉得云里来雾里去.所以大可先从已熟悉的入手,旁推侧引它的原理,再引出Java版的实现. 因为博 ...

最新文章

  1. 面试使用计算机,面试相关之计算机基础
  2. “臭名昭著”的他们终于被裁了!字节宣布将精简HR团队,网友:业界毒瘤!...
  3. 开机时不显示启动菜单grub
  4. 【Echarts 3.x】填坑记
  5. ASP.NET中添加View与Razor引擎以及View解析和Controller向View传值
  6. Git之撤销add操作
  7. HDU - 6955 Xor sum tire树 + 贪心
  8. 10月26日练习注册用例的编写与ibatis培训
  9. libevent 接收TCP连接
  10. 【POJ3349】Snowflake Snow Snowflakes(哈希表判重,维护一个集合)
  11. 无法定位程序输入点WSAPoll于动态链接库WS2-32.DLL
  12. linux 环境变量的设置
  13. 现代软件工程_团队项目_阿尔法阶段_第二次会议记录_2017.11.13
  14. Spring注解-@DependsOn
  15. matlab定义对角块矩阵,Matlab中的扩展块对角矩阵
  16. VirtualBox调整分分辨率
  17. 两个PDF怎么合成在一起
  18. 腾讯反病毒实验室安全研究员杨经宇:开启IoT设备的上帝模式
  19. RSA+AES混合加密实例
  20. php开源会员信息系统,poscms会员详情

热门文章

  1. 2019杭州(准)独角兽企业
  2. oracle整库的移植,Oracle数据库整机移植技术(原创)
  3. SpringCloud NetFlix学习笔记(一)
  4. Python 3.10版本及其依赖项 Linux下源码编译 安装到指定路径/目录
  5. 将来是多久,看一看大佬的故事--《绝非偶然》
  6. Android-生成二维码工具类
  7. ELK+Filebeat 部署安装
  8. 【java-Date】
  9. 【SLAM学习】(二)相机原理
  10. 7.15、HTML5画布(矩形和圆形)