[Unity动画]03.动画事件
1.找到动画,添加动画事件

2.在脚本中添加回调方法
TestAnimator.cs
using UnityEngine;
public class TestAnimator : MonoBehaviour {
//------------------------------------------外部
public float Move = ;
public bool IsDying = false;
//------------------------------------------内部
private Animator animator;
//常数
private int baseLayerIndex;
private int idleStateHash;
private int runStateHash;
private int dyingStateHash;
private string movePara;
private string isDyingPara;
void Start ()
{
animator = GetComponent<Animator>();
baseLayerIndex = animator.GetLayerIndex("Base Layer");
idleStateHash = Animator.StringToHash("Base Layer.Idle");
runStateHash = Animator.StringToHash("Base Layer.Run");
dyingStateHash = Animator.StringToHash("Base Layer.Dying");
movePara = "move";
isDyingPara = "isDying";
}
void Update ()
{
//------------------------------------------播放动作
animator.SetFloat(movePara, Move);
if (IsDying)
{
animator.SetBool(isDyingPara, true);
IsDying = false;
}
//------------------------------------------动作恢复
AnimatorStateInfo stateInfo;
int fullPathHash;
//BaseLayer
stateInfo = animator.GetCurrentAnimatorStateInfo(baseLayerIndex);
if (!animator.IsInTransition(baseLayerIndex) && stateInfo.normalizedTime >= )
{
fullPathHash = stateInfo.fullPathHash;
if (fullPathHash == dyingStateHash)
{
animator.SetBool(isDyingPara, false);
}
}
}
public void SetDying(bool state)
{
if (animator)
{
animator.SetBool(isDyingPara, state);
}
}
public void ActionCallBack(string s)
{
if (s == "dyingStart")
{
Debug.Log("");
}
else if (s == "dying")
{
Debug.LogWarning("");
}
else if (s == "dyingEnd")
{
Debug.LogError("");
}
}
}
3.输出如下

[Unity动画]03.动画事件的更多相关文章
- unity 对Animator动画系统的研究
unity的新动画系统叫Mecanim,使用Animator来取代旧系统Animation,按Unity文档的惯例:知识点主要分2部分:unity manual和unity script,读者可以边看 ...
- Unity MegaFiers 顶点动画
使用 MegaFiers 插件,能够使得Unity支持顶点动画的播放. 官方视频教程例如以下: 在这里简单測试使用下,环境例如以下: Blender 2.72 Unity 4.5.4 Mega ...
- CSS3动画以及animation事件
1.CSS3动画以及animation事件的定义 animation :name duration timing-function delay iteration-count direction an ...
- UI设计篇·入门篇·简单动画的实现,透明动画/旋转动画/移动动画/缩放动画,混合动画效果的实现,为动画设置监听事件,自定义动画的方法
基本的动画构成共有四种:透明动画/旋转动画/移动动画/缩放动画. 配置动画的方式有两种,一种是直接使用代码来配置动画效果,另一种是使用xml文档配置动画效果 相比而言,用xml文档写出来的动画效果,写 ...
- 关于Unity中Mecanim动画的动画状态代码控制与代码生成动画控制器
对于多量的.复杂的.有规律的控制器使用代码生成 动画状态代码控制 1:每个动画状态,比如进入状态,离开状态, 等都有可能需要代码来参与和处理,比如,进入这个动画单元后做哪些事情,来开这个动画单元后做哪 ...
- 关于Unity中Mecanim动画的重定向与动画混合
应用 一个RPG游戏,里面有100种怪物,每种怪物其实都差不多的,行走,跳跃,攻击,难道动画师要调100次动画吗?其实不需要 Unity抽象出人形动画系统,用Unity简化版的骨骼来进行统一的管理,只 ...
- Unity Shader序列帧动画学习笔记
Unity Shader序列帧动画学习笔记 关于无限播放序列帧动画的一点问题 在学shader的序列帧动画时,书上写了这样一段代码: fixed4 frag(v2f i){ // 获得整数时间 flo ...
- unity代码添加动画,并传参数
测试界面 button一个 sprite一个 测试代码 public class BgObject : MonoBehaviour { void Start() { List<string> ...
- unity shader序列帧动画代码,顺便吐槽一下unity shader系统
一.看到UNITY论坛里有些人求unity shader序列帧动画,写shader我擅长啊,就顺势写了个CG的shader.代码很简单,就是变换UV采样序列帧贴图,美术配置行数列数以及变换速度. Sh ...
随机推荐
- 【转】Python metaclass
转自: http://ju.outofmemory.cn/entry/32434 在回答了 yield关键字和 decorator的问题之后,我更明白了,我决定非常详细地回答这个问题. 读前警告:这个 ...
- SSH实现隧道功能穿墙
Putty和SSH tunnel 目前寻求FQ的方式无非就几种: 寻找web代理(这个可以进我放置的在线代理进行测试) 自行寻找http/sock5代理(这个可以去网上搜索代理ip) vpnFQ(目前 ...
- Django 链接mysql
第一步:settings.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'testdjango ...
- 微信开发-业务域名、JS接口安全域名、网页授权域名
在微信公众平台上可配置这些域名. 1.业务域名:在微信浏览器中点击文本框,会弹出下面的提示,很不爽,通过配置业务域名可以将该提示去掉 2.JS接口安全域名:分享到朋友圈(js-sdk)时用上,此接口要 ...
- Azure China (13) Azure China CDN经验总结
<Windows Azure Platform 系列文章目录> 最近处理了很多CDN的问题,在这里记录一下. 1.首先介绍一下CDN的原理: (1)用户输入需要访问的URL (比如www. ...
- line-height的理解
font-size:0清除display:inline-block元素换行符间隙,比如两个img标签之间有换行符 行内元素的高度是由其行高决定的. Div或者其他元素内的图片,底部会有间隙,原因是图片 ...
- NET Core Kestrel部署HTTPS
NET Core Kestrel部署HTTPS ASP.NET Core配置 Kestrel部署HTTPS.现在大部分网站已经部署HTTPS,大家对于安全越来越重视. 今天简单介绍一下ASP.NET ...
- 项目出现 The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 解决方法
1. The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path ①项 ...
- elasticsearch 5.1 别的机器无法访问9200端口
版权声明:作者:jiankunking 出处:http://blog.csdn.net/jiankunking 本文版权归作者和CSDN共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显 ...
- 【Centos7裁剪】
#!/bin/sh rootdir=`pwd` rm -rf ${rootdir}/centos* KERNEL_DIR=${rootdir}/kernel ROOTFS_DIR=${rootdir} ...