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控制参数和添加事件的更多相关文章

  1. js添加事件监听的方式与this

    js添加事件监听与this js添加事件监听的方式与this 在标签中调用自定义函数 DOM0级事件处理程序 DOM2级事件处理程序 this 代表谁? js添加事件监听的方式与this <di ...

  2. addListener添加事件监听器,第三个参数useCapture (Boolean) 的作用

    addEventListener 有三个参数:第一个参数表示事件名称(不含 on,如 "click"):第二个参数表示要接收事件处理的函数:第三个参数为 useCapture,本文 ...

  3. Flex 关于 keyDown事件的添加和移除(另附添加事件的执行带参数的函数)

    今天遇到一个棘手的问题,原本的textInput控件有一个keyDown事件,但是不是所有的用户都需要,麻烦了首先先删除控件里面的keyDown,这个事件放在这谁都得用,我就是不想用这就实现不了,怎么 ...

  4. Unity3D的按钮添加事件有三种方式

    为Unity3D的按钮添加事件有三种方式,假设我们场景中有一个Canvas对象,Canvas对象中有一个Button对象. 方式一: 创建脚本ClickObject.cs,然后将脚本添加到Canvas ...

  5. ASP.NET自定义控件组件开发 第三章 为控件添加事件 后篇

    原文:ASP.NET自定义控件组件开发 第三章 为控件添加事件 后篇 第三章 为控件添加事件 后篇 前一篇文章只是简单的说了下事件,但是大家应该方法,在ASP.NET自定义控件中只是简单那么定义事件是 ...

  6. Unity游戏开发——自动为动画剪辑添加事件 之 最后几帧的事件不能被调用的问题

    最近在做一个根据配置表自动生成动画剪辑clip以及controller的功能.做法是根据配置表配置的动作以及每个动作的关键帧,自动为每个clip添加事件.这样做可以把动画的事件处理在游戏运行之前就计算 ...

  7. JS事件冒泡机制和兼容性添加事件

    本篇文章主要来讲讲 事件的冒泡机制 和 添加事件的几种方法. 一. JS的时间传递顺序: 捕获阶段 -> 目标阶段 -> 冒泡阶段 捕获阶段是指从父层往子层找.比如 <body> ...

  8. ASP.NET实现微信功能(1)(创建菜单,验证,给菜单添加事件)

    LZ实在 不知道怎么起名字了,索性就取了这个名字,开始吧,说实在的,想给自己的平常的学习做一个总结,总是忘了总结.也只能给工作做一个总结了. 我打算用2篇文章来写,第一篇是关于订阅号的,就是这个号,另 ...

  9. 深入理解JavaScript的闭包特性如何给循环中的对象添加事件

    初学者经常碰到的,即获取HTML元素集合,循环给元素添加事件.在事件响应函数中(event handler)获取对应的索引.但每次获取的都是最后一次循环的索引.原因是初学者并未理解JavaScript ...

随机推荐

  1. 自定义控件?试试300行代码实现QQ侧滑菜单

    Android自定义控件并没有什么捷径可走,需要不断得模仿练习才能出师.这其中进行模仿练习的demo的选择是至关重要的,最优选择莫过于官方的控件了,但是官方控件动辄就是几千行代码往往可能容易让人望而却 ...

  2. nodejs npm 使用淘宝 NPM 镜像

    使用淘宝 NPM 镜像 大家都知道国内直接使用 npm 的官方镜像是非常慢的,这里推荐使用淘宝 NPM 镜像. 淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读), ...

  3. js 退后一步并刷新,window.history.back(-1);这个只能后退一步不能刷新,

    location.href=document.referrer; document.referrer是获取上一页的url

  4. level 1 -- unit 4 -- where 引导的疑问句

    where be sb/sth 询问地点,用where where is the restaurant? where are my socks ? where was tome just now? w ...

  5. windows xp\2003 之上的操作系统多启动(多系统)引导

    概要技术: 微软自windows vista以来的操作系统引导bootmgr是真的很强大,只是因为其全底层的命令操作,且不友好的命令帮助让人望而却步! 基本技术概要提点: boot.ini 支持:xp ...

  6. C#特性文章学习

    http://www.cnblogs.com/rohelm/archive/2012/04/19/2456088.html http://www.cnblogs.com/liuxinxin/artic ...

  7. jsp+springmvc实现文件上传、图片上传和及时预览图片

    1.多文件上传:http://blog.csdn.net/a1314517love/article/details/24183273 2.单文件上传的简单示例:http://blog.csdn.net ...

  8. PHP缓存机制详解

    一,PHP缓存机制详解 我们可以使用PHP自带的缓存机制来完成页面静态化,但是仅靠PHP自身的缓存机制并不能完美的解决页面静态化,往往需要和其他静态化技术(通常是伪静态技术)结合使用. output ...

  9. Java位运算加密

    创建一个类,通过位运算中的”^"异或运算符把字符串与一个指定的值进行异或运算,从而改变字符串每个字符的值,这样就可以得到一个加密后的字符串.当把加密后的字符串作为程序输入内容,再与那个指定的 ...

  10. MongoDB聚合管道

    通过上一篇文章中,认识了MongoDB中四个聚合操作,提供基本功能的count.distinct和group,还有可以提供强大功能的mapReduce. 在MongoDB的2.2版本以后,聚合框架中多 ...