unity旧动画系统之animationClip/animationEvent/animationCurve
animationClip 动画剪辑,用来播放动画;
AnimationEvent 类似于SendMessage让你调用一个脚本函数,这个脚本是动画播放的一部分。动画事件函数支持0参数或一个参数,参数可以是浮点型,字符串,object或AnimationEvent。
animationCurve 生成动画剪辑的曲线的集合,存储关键帧信息。
参考自unity圣典,实际测试过。下面的代码只挑选其中部分方法和属性加以说明。。。。。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class AnimationTest : MonoBehaviour {Animation _animation;AnimationState _state;public AnimationClip clip01;public Transform guge;AnimationEvent _event;// Use this for initializationvoid Start () {_animation = GameObject.Find("aaa").GetComponent<Animation>();}void Update (){if (Input.GetKeyDown(KeyCode.A)){// print("以秒为单位的动画长度:"+_animation.clip.length);// print("被取样关键帧的帧速率:"+_animation.clip.frameRate);//定义一个animationEvent_event = new AnimationEvent();//事件添加到动画播放的具体时间点_event.time = 0.2f;//动画事件的方法名,注意拥有该方法的脚本必须放在拥有该animation的游戏对象上,不然会报错(没有接收者)_event.functionName = "eventTest";//给剪辑添加动画事件,注意该动画事件只能持续在播放模式下,直到退出播放模式或者//玩家退出。如果想给剪辑添加一个固定的事件,那么请在unity编辑器下添加。_animation.clip.AddEvent(_event);}}void eventTest(){print("animationEvent成功触发");}
}
if (Input.GetKeyDown(KeyCode.A)){_animation.clip.ClearCurves();//从动画剪辑中清除所有动画曲线(移除了该动画所有关键帧)}
if (Input.GetKeyDown(KeyCode.A)){//直线包括开始时间、开始值、结束时间、结束值AnimationCurve curve = AnimationCurve.Linear(0, 1, 2, 3);AnimationClip clip = new AnimationClip();//默认情况下 clip.legacy是false 直接播放会报错clip.legacy = true;//设置动画剪辑的动画曲线,如果曲线为null,曲线将被移除;如果曲线属性已经存在,那么曲线将被替换。//四个参数含义://1:将该曲线应用到的游戏对象的路径 ,比如"root/spine/leftArm",如果为空,则表示动画剪辑附加的游戏物体。//2:要产生动画效果的属性类型//3:属性的名字(通常的名称是: “localPosition.x”, “localPosition.y”, “localPosition.z”, “localRotation.x”, //“localRotation.y”“localRotation.z”, “localRotation.w” “localScale.x”, “localScale.y”, “localScale.z”.) //4:动画曲线clip.SetCurve("", typeof(Transform), "localPosition.x", curve);_animation.AddClip(clip, "test");_animation.Play("test");}
unity旧动画系统之animationClip/animationEvent/animationCurve相关推荐
- Unity 3D 动画系统(Mecanim)|| Unity 3D 人形角色动画(Avatar)
Unity 3D 动画系统(Mecanim) Mecanim 动画系统是 Unity 公司推出的全新动画系统,具有重定向.可融合等诸多新特性,可以帮助程序设计人员通过和美工人员的配合快速设计出角色动画 ...
- Unity 3D 导入三维模型||Unity 3D 动画系统简介(Mecanim)
将三维模型导入 Unity 3D 是游戏开发的第一步. 下面以 3ds Max 为例,演示从三维建模软件中将模型导入 Unity 3D 的过程,具体步骤如下. 在 3ds Max 中创建房子模型. 执 ...
- Unity进阶 - 动画系统 - 给人物角色制作动画
Unity进阶 - 动画系统 - 给人物角色制作动画(点击免费试学本节) 上一篇文章,我们对Unity进阶 - 动画系统 - Mecanim动画系统有了一定的认识,本节课我们给人员角色制作一些简单的动 ...
- Unity Mecanim动画系统 之 动画层(Layers)和 动画遮罩(Avatar Mask)的简单使用
Unity Mecanim动画系统 之 动画层(Layers)和 动画遮罩(Avatar Mask)的简单使用 目录 Unity Mecanim动画系统 之 动画层(Layers)和 动画遮罩(Ava ...
- Unity Mecanim动画系统 之 IK(Inverse Kinematics即反向动力学)的相关说明和简单使用
Unity Mecanim动画系统 之 IK(Inverse Kinematics即反向动力学)的相关说明和简单使用 目录 Unity Mecanim动画系统 之 IK(Inverse Kinemat ...
- Unity Mecanim动画系统 之 动画混合树(Blend Trees)的简单使用
Unity Mecanim动画系统 之 动画混合树(Blend Trees)的简单使用 目录 Unity Mecanim动画系统 之 动画混合树(Blend Trees)的简单使用 一.简单介绍 二. ...
- unity velocity_Unity动画系统详解5:BlendTree混合树是什么?
摘要:"Animator中有一个功能,用来解决多个动画之间的混合,经常用于移动动画之间的混合,这个功能叫做BlendTree,混合树." 洪流学堂,让你快人几步.你好,我是跟着大智 ...
- Unity Mecanim 动画系统简介
目录 前言 正文 1. Animator 组件 2. 创建 AnimatorController 3. 创建新状态 4. 状态切换 Has Exit Time: 前言 Mecanim是Unity提供第 ...
- Unity老动画系统Animation
1.创建老动画系统 给要制作动画的GameObeject添加Animation组件 2.Animation参数 Animation:默认播放的动画 Animations:该动画组件可以控制的所有动画 ...
- Unity用户手册-动画系统Animator
动画系统Animator 动画类型 Legacy 基础的动画 Generic 动画,包含动画状态机 Humanoid 人形动画,包含动画状态机 Update Mode Normal 动画播放将与Upd ...
最新文章
- Vue - class与style绑定
- 基本算法之递推与递归的简单应用
- Linux内存申请机制
- Qt Quick入门
- 使用gevent启动bottle web框架
- javascript for in,for each,for循环遍历区别
- 论文浅尝 | 利用问题生成提升知识图谱问答
- 信息学奥赛一本通(1232:Crossing River)
- 数学建模之倾倒的啤酒杯
- 《软件工程》-软件质量管理
- Java异或运算和校验
- 计算机毕业设计成品 基于Vue+Springboot的校园论坛网站管理系统java maven
- Win10 永久关闭自动更新,禁止windows10自动更新
- kubernetes device or resource busy的问题
- 推箱子游戏的java设计思路_基于Java推箱子游戏的设计与实现
- vue 判断字符串是否是英文_Vuejs Element input组件区分中英文 统计长度
- 人工智能:嵌入式技术的机遇与挑战
- 怎么把图片文件转换成PDF文件
- 小白教程!x2m和x3m音频格式转换.mp3格式
- 互联网暗潮汹涌,开放平台机遇空前