unity中动画与触发事件的分解
来源:互联网 发布:淘宝在哪抢购秒杀 编辑:程序博客网 时间:2024/06/04 18:49
unity中,模型的行为通常是与动画同时发生的,但是在处理过程中,我们又需要把播放动画与行为触发分开实现,来达到代码的简介与功能的划分,这时候就要用到事件与委托。在这里我们用一个AnimationEventBehaviour工具类将其实现。
类的思想是创建一个事件,之后由策划人员来绑定播放动画到什么时间触发事件。而程序端(用player脚本模拟)只需要控制动画的播放时机以及进行事件触发行为的绑定,这样就很好的达到了划分功能,单一职责的要求。
具体操作由一些图片进行解释
在模型上绑上脚本AnimationEventBehaviour后,如此进行事件的绑定:
组件结构如图
AnimationEventBehaviour脚本与其绑定在player上的测试函数如下:
public class AnimationEventBehaviour : MonoBehaviour { /* 程序职责: 在某个脚本播放动画,定义攻击的具体逻辑,绑定到事件。 策划: 将当前脚本附加给模型,在Unity编译器中设置动画片段的事件(攻击,取消动画) */ //在脚本中注册事件 public event Action attackHandler; private Animator anim; private void Start() { anim = GetComponentInChildren<Animator>(); } //策划在Unity编译器中指向当前方法 public void OnAttack() { if (attackHandler != null) attackHandler(); } //策划在Unity编译器中指向当前方法 public void OnCancelAnim(string animPara) { anim.SetBool(animPara, false); }}
private new void Awake() { GetComponentInChildren<AnimationEventBehaviour>().attackHandler += OnAttacking; }
//攻击时仅调用次方法,进行动画的播放 public void Attack() { //播放攻击动画 GetComponentInChildren<Animator>().SetBool("attack1", true); } public void OnAttacking() { Debug.Log("攻击"); }
阅读全文
0 0
- unity中动画与触发事件的分解
- unity-动画中加入触发事件
- unity 事件的触发脚本
- Unity中碰撞时触发事件
- 写在前面的 unity碰撞触发事件
- Unity事件触发
- jQuery 中事件的触发
- DataGrid中dropdownlist事件的触发/ImageButton的事件触发
- DataGrid中dropdownlist事件的触发ImageButton的事件触发
- unity中处理animator动画事件
- Unity UGUI中按钮自动触发UI事件
- HTML中事件触发列表与解说
- HTML中事件触发列表与解说
- HTML中事件触发列表与解说
- HTML中事件触发列表与解说
- Unity 碰撞与触发
- CSS3动画、过渡结束后触发执行的事件
- d3事件(二):事件的触发与自定义事件
- String , StringBuffer , StringBuilder
- ConfigReader(十八)—— ReadGuideObjShowTaskConfig
- 常用的正则表达式
- 【c基础练习】c语言实现配置文件解析
- Material Design八个强大功能的控件
- unity中动画与触发事件的分解
- MapReduce流程
- 史上最全的架构师图谱
- 代理模式
- java中的访问权限控制
- Enhancements to SQL Server Column Stores
- 最长上升子序列 最长下降子序列 (非严格)
- 根据TextArea传来的值,自动折行,并合成图片
- 十进制转二进制