Unity3D Animator控制参数和添加事件
Animator控制参数和添加事件

using UnityEngine;
using System.Collections; public class AniControl : MonoBehaviour { public bool IsRolling = false;
public bool IsDead = false;
public bool IsJump = false;
public float Direction = 0.5f;
public Animator Anitor;
public float Velocity = 0f; public int IsRollingId =-1;
public int IsJumpId = -1;
public int IsDeadId = -1; AnimatorOverrideController overrideController; void Awake()
{
//获得哈希id
IsRollingId = Animator.StringToHash ("IsRolling");
IsDeadId = Animator.StringToHash ("IsDead");
IsJumpId = Animator.StringToHash ("IsJump"); //要动态修改Animator 需要给OverrideController
overrideController = new AnimatorOverrideController();
overrideController.runtimeAnimatorController = Anitor.runtimeAnimatorController;
} // Use this for initialization
void Start () { var runClip = overrideController["Run"];
Anitor.runtimeAnimatorController = overrideController; //动态添加事件
AnimationEvent aEvent1 = new AnimationEvent();
aEvent1.time = runClip.length;
aEvent1.functionName = "OnOpenComplete";
aEvent1.stringParameter = runClip.length.ToString ();
runClip.AddEvent(aEvent1);
} // Update is called once per frame
void Update () { if (Input.GetKey (KeyCode.W)) {
Velocity = 1.0f;
} else {
Velocity = 0f;
} if (Input.GetKey (KeyCode.Space)) {
IsJump = true;
} else {
IsJump = false;
}
if (Input.GetKey (KeyCode.A)) {
Direction = 0;
} else if (Input.GetKey (KeyCode.D)) {
Direction = 1;
} else {
Direction = 0.5f;
} Anitor.SetFloat ("Velocity",Velocity);
Anitor.SetBool (IsRollingId,IsRolling);
Anitor.SetBool (IsDeadId,IsDead);
Anitor.SetBool (IsJumpId,IsJump);
Anitor.SetFloat ("Direction",Direction); } void OnOpenComplete(string str)
{
Debug.Log ("OnOpenComplete="+str);
}
}
Unity3D Animator控制参数和添加事件的更多相关文章
- js添加事件监听的方式与this
js添加事件监听与this js添加事件监听的方式与this 在标签中调用自定义函数 DOM0级事件处理程序 DOM2级事件处理程序 this 代表谁? js添加事件监听的方式与this <di ...
- addListener添加事件监听器,第三个参数useCapture (Boolean) 的作用
addEventListener 有三个参数:第一个参数表示事件名称(不含 on,如 "click"):第二个参数表示要接收事件处理的函数:第三个参数为 useCapture,本文 ...
- Flex 关于 keyDown事件的添加和移除(另附添加事件的执行带参数的函数)
今天遇到一个棘手的问题,原本的textInput控件有一个keyDown事件,但是不是所有的用户都需要,麻烦了首先先删除控件里面的keyDown,这个事件放在这谁都得用,我就是不想用这就实现不了,怎么 ...
- Unity3D的按钮添加事件有三种方式
为Unity3D的按钮添加事件有三种方式,假设我们场景中有一个Canvas对象,Canvas对象中有一个Button对象. 方式一: 创建脚本ClickObject.cs,然后将脚本添加到Canvas ...
- ASP.NET自定义控件组件开发 第三章 为控件添加事件 后篇
原文:ASP.NET自定义控件组件开发 第三章 为控件添加事件 后篇 第三章 为控件添加事件 后篇 前一篇文章只是简单的说了下事件,但是大家应该方法,在ASP.NET自定义控件中只是简单那么定义事件是 ...
- Unity游戏开发——自动为动画剪辑添加事件 之 最后几帧的事件不能被调用的问题
最近在做一个根据配置表自动生成动画剪辑clip以及controller的功能.做法是根据配置表配置的动作以及每个动作的关键帧,自动为每个clip添加事件.这样做可以把动画的事件处理在游戏运行之前就计算 ...
- JS事件冒泡机制和兼容性添加事件
本篇文章主要来讲讲 事件的冒泡机制 和 添加事件的几种方法. 一. JS的时间传递顺序: 捕获阶段 -> 目标阶段 -> 冒泡阶段 捕获阶段是指从父层往子层找.比如 <body> ...
- ASP.NET实现微信功能(1)(创建菜单,验证,给菜单添加事件)
LZ实在 不知道怎么起名字了,索性就取了这个名字,开始吧,说实在的,想给自己的平常的学习做一个总结,总是忘了总结.也只能给工作做一个总结了. 我打算用2篇文章来写,第一篇是关于订阅号的,就是这个号,另 ...
- 深入理解JavaScript的闭包特性如何给循环中的对象添加事件
初学者经常碰到的,即获取HTML元素集合,循环给元素添加事件.在事件响应函数中(event handler)获取对应的索引.但每次获取的都是最后一次循环的索引.原因是初学者并未理解JavaScript ...
随机推荐
- max导出模型插件
首先,需要做好如下的准备工作:1. 安装一个完整版本的3D MAX与Visual Stdio.我安装的是3D MAX 2012,最好是找一个完整的版本,因为完整的版本中有很多的学习资料与sdk供学习, ...
- Scala学习笔记——入门
0.在 scala> 下运行Scala程序 首先cd到.scala文件所在的目录下 scalac这个scala文件,然后import package的名字.object的名字 然后就能使用 ob ...
- 【转】Spring Boot干货系列:(三)启动原理解析
前言 前面几章我们见识了SpringBoot为我们做的自动配置,确实方便快捷,但是对于新手来说,如果不大懂SpringBoot内部启动原理,以后难免会吃亏.所以这次博主就跟你们一起一步步揭开Sprin ...
- 正则表达式(Java版整理)
基础 元字符 代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 ^ 匹配字符串的开始 $ 匹配字符串的结束 \b 匹配字符串的结束 ...
- MongoDB的php可视化管理工具
使用MongoDB命令查看很不方便 于是想把爬来的数据导出来,看爬来的数据是否正确 打开cmd,执行 mongoexport -d test -c blogs --csv -f title,link, ...
- 怎么设置BarTender中二维码大小为25*25
有小伙伴近期问了小编一个问题,说客户需要25*25大小的QR Code二维码,用BarTender怎么做出来?想要指定条形码的大小,还得BarTender符号与版本选项来帮忙.本文小编就来给大家详细讲 ...
- 配置caffe过程中,生成解决方案出错。无法打开包括文件: “gpu/mxGPUArray.h”
------ 已启动生成: 项目: matcaffe, 配置: Release x64 ------12> MatlabPreBuild.cmd : Create output director ...
- 用plsql 导入导出oracle表结构数据
一.导出 (1)导出数据 进入pl/sql,"工具"---->"Export Tables...",然后在弹出的对话框中选择要导出的表,最后点击" ...
- 关于python单方法的类
1.大部分情况下,你拥有一个单方法类的原因是需要存储某些额外的状态来给方法使用. 此种情况下可以使用闭包代替,参考 javascript的闭包计数器实现,python实现各种方法来实现计数器 关于这个 ...
- 兼容 iOS Retina(视网膜显示) 的程序
首先我们需要明确一点,iOS设备上图片兼容retina的问题最初是由于iPhone4的分辨率由iPhone3的320X480提升到了640X960所产生. 为了让iPhone4能够兼容iPhone3上 ...