StateMachineBehaviour状态机行为
2016-01-17 22:21
218 查看
StateMachineBehaviour和MonoBehavior一样是一个特殊的类,Monobehavior挂在Gameobject下,而StateMachineBehaviour挂在状态控制器下,用于分割状态控制器行为。
StateMachineBehaviour 的回调函数有: OnStateEnter, OnStateExit, OnStateIK, OnStateMove, OnStateUpdate.把这个脚本挂在状态控制器下,可以很清楚的知道状态控制器在执行什么状态 如图:
详细请查阅官方文档:http://docs.unity3d.com/ScriptReference/StateMachineBehaviour.html
using UnityEngine; public class AttackBehaviour : StateMachineBehaviour { public GameObject particle; public float radius; public float power; protected GameObject clone; override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { clone = Instantiate(particle, animator.rootPosition, Quaternion.identity) as GameObject; var rb = clone.GetComponent<Rigidbody>(); rb.AddExplosionForce(power, animator.rootPosition, radius, 3.0f); } override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { Destroy(clone); } override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { Debug.Log("On Attack Update "); } override public void OnStateMove(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { Debug.Log("On Attack Move "); } override public void OnStateIK(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { Debug.Log("On Attack IK "); } }
StateMachineBehaviour 的回调函数有: OnStateEnter, OnStateExit, OnStateIK, OnStateMove, OnStateUpdate.把这个脚本挂在状态控制器下,可以很清楚的知道状态控制器在执行什么状态 如图:
详细请查阅官方文档:http://docs.unity3d.com/ScriptReference/StateMachineBehaviour.html
相关文章推荐
- poj-2513-Colored Sticks-字典树trie / hash +并查集 欧拉回路
- 玩转objective-c
- 二分查找法-指针和数组表示-优化效率
- 空间金字塔方法表示图像
- 首届CCF软件能力认证试题第二题详解(窗口)
- php实现插入排序
- 再见,2015,你好,2016。
- 闰年判断
- 从实例中理解框架
- 骗子的逻辑
- php实现选择排序
- AFNetWorking常用方法
- UESTC 1264 人民币的构造
- 隐藏和显示
- Resource: bean/Product.hbm.xml not found
- c++11 访问者模式
- 深入了解 Flash Cache
- 写一点opengl的初步入门理解
- Arduino 和 RPi 在家居控制方面的各种实践
- 如何高效的读懂代码