Unity 动画系统 Animation 和 Animator的小实例

本文结合一个很简单的动画demo,分别采用2种方法,来对比Animation和Animator的使用方式:

  方法1:单独使用Animation

  方法2:Animation结合Animator

动画Demo

两个动画。一个是移动,一个是缩放。



实现方式的对比

一、单独Animation来实现

空场景,找到一张Sprite图片,拖到面板中,右键添加Animation组件。如下:

点中这张pig猪的图片,点击Unity的 Window->Animation->Animation。出现如下:

这个时候发现,提示仅仅让创建一个Animation。我们点击Create。然后命名保存。

点击 Add Property,选择Transform的Position,并在下图内容中的右侧建立几个关键帧。(怎么建之类的我就不写了)Unity播放动画的时候会自动插值。

点击左上角 Animation-Move 右边的上下箭头,弹出小框,选择Create New Clip,建立另一个动画Animation-Scale。

动画Animation-Scale如下:

这个时候Animation组件内容发生了变化,刚刚创建的2个动画在里面:

这个时候,动画已经做完了。点击Unity开始按钮,就可以播放。

还可以通过简单代码来控制播放:

Animation animation;

animation.Play("Name");

通过动画名字就可以播放相应的动画。

至于如何设置动画的播放速度、播放方式、如何暂停之类的,稍后详解Animation 类。



二、Animation和Animator来实现

选中pig猪,与方式一不同的是,不要先添加Animation组件,直接Window--Animation--Animation,命名保存后,会出现2个文件:

?? 一个是Animation播放动画的,一个是Animator管理动画的。

??pig猪会自动添加一个Animator组件,没有了Animation组件:

同样的方式,再创建一个 Animator-Scale。这个时候,点击pig猪,在点击Window--Animation--Animator,来观察Animator视图:

Animator可以管理这两个动画。创建动画切换的条件:AniState 为1时,播放Move动画,为2时,播放Scale动画。

代码里面可以控制条件变量AniState的值,进而达到控制动画切换的目的:

Animator animator;
animator.SetInteger("AniState",1);  



Unity 动画系统 Animation 和 Animator的小实例

原文地址:https://www.cnblogs.com/01zxs/p/9983242.html

时间: 2024-08-08 17:49:21

Unity 动画系统 Animation 和 Animator的小实例的相关文章

【Unity编程】Unity动画系统(一)

Unity动画系统 Unity动画系统,也称为"Mecanim",提供了以下功能: 简单的工作流程,设置动画的所有元素,包括对象,角色和属性. 支持导入外部创建的动画片段和使用内置动画编辑器制作的动画片段. 人型动画重新定位,动画角色的运动控制可以被所有的角色模型共享,即角色的外观(SkinedMesh)和运动(Animator)是分离的,它们互相组合之后形成最终的动画. 用于编辑动画状态的的简化工作流程,即动画控制器. 方便预览动画片段,以及片段之间的插值过渡. 这使得动画师可以独立

Unity动画系统Animator动态添加事件

之前一直都是手动给模型动画添加事件,最近在做项目的时候,感觉很麻烦,而且经常要改,就变的更麻烦了.于是就在网上查了下,事件是可以在运行时自动添加的,在此记录一下,免得自己以后忘了. 现在有一个模型和动画控制器如下: 很简单,没有什么骚操作.并在模型上挂了一个 Test 脚本,我在 Test 脚本里,分别在动画的开始,结束,和播放一半的时候添加事件.运行打印如下: 截图没办法很好的表示动态效果,大家可以自己尝试一下,代码如下,逻辑很简单,就不多说了: 1 using UnityEngine; 2

Unity 动画系统 AnimationEvent 动画事件

AnimationEvent类 添加事件的方法: 1.创建一个动画事件 AnimationEvent evt = new AnimationEvent(); evt.functionName = "PrintEvent"; evt.intParameter = 12345; evt.time = 1.3f; 2.具体的事件函数,自己写的函数 public void PrintEvent(int i) { print("PrintEvent: " + i ); //自

unity 对Animator动画系统的研究

unity的新动画系统叫Mecanim,使用Animator来取代旧系统Animation,按Unity文档的惯例:知识点主要分2部分:unity manual和unity script,读者可以边看文章边查阅文档,最好能动手测试. 文章的开始之前,先讲几个基本的知识的: 1.创建动画的一个基本步骤是设置一个unity3d可理解的简化后的骨骼到骨架中实际骨骼的映射:在Mecanim的术语中,这个映射称为Avatar,即avatar是骨骼到骨架的映射. (图片来自网) Avatar主要用于类人骨骼

Unity 动画知识之一

Unity现在已经用的很广泛啦,可是却一直没有什么美术向的教程. 程序用方面的内容在各个论坛都有讨论,但是美术似乎很弱势啊. 明明美术也很需要掌握引擎方面的内容嘛! 山谷里的野百合还有春天呢 我们美术也要出教程! 这次选了本菜鸡比较不那么菜的细分领域?unity3d  3D美术模块 来讲 美术小伙伴们肯定是懒得看那么多字啦,所以我就写的尽量有意思一点吧…… 计划是从入门到住院全部讲完的,但是能不能讲完我也不晓得,挖坑不填什么的最开心了 至于为什么是从入门到住院,因为学了这套东西,你就具备了在项目

07 动画系统

    Mecanim动画(新版动画)    选中一个动画在右侧的属性面板中可以查看动画的种种属性,    动画类型:None:无任何动画    Legacy:旧版Animation动画   Generic:一般动画(非人型动画)    Humanoid:人型动画 人型动画设置: 人型动画最重要的表示骨骼的设置,没有与之相匹配的骨骼,动画就不会播放 在属性面板进入动画剪辑中可对动画的长度以及播放时的状态进行编辑 LoopTime: 循环播放Loop Pose:循环姿势,解决最后一帧和最后一帧衔接

关于Unity中新版动画系统的使用

Mecanim动画 1:旧版动画系统只能通过代码来控制动画播放,随着动画种类变多,代码复杂度也会增加,同时动画过渡也需要非常繁琐的代码控制,为了让有经验的动画师开发动画,unity推出了针对人物角色的Mecanim动画系统;2:Mecanim支持运动重定向(Retargeting)功能,即把动画从一个角色模型应用到另一个角色模型;3: Mecanim允许使用"肌肉"来控制不同骨骼的运动范围;觉得某个动画太夸张的时候,可以用"肌肉"来限制一下.4: Mecanim动画

4.6之前旧版动画系统(Animation),AI

一:4.6之前旧版动画系统(Animation)二:4.6版本之后新版动画系统(Animator)方法:动画分割方法:(控制动画播放的动画)1. Play2. CrossFade3. CrofdFadeQueuedIsPlaying()指定的动画是否正在播放Stop()停止播放指定的动画属性:isPlaying:当前是否有动画正在播放 Rig标签中的Animation Type要是Legacy(旧版动画系统) 动画融合(通过指定关节来播放动画) 动画帧事件(当动画播放到某一帧时执行指定的方法,比

Unity3D之Mecanim动画系统学习笔记(三):Animation View

动画组件之间的关系 我们先看一张图: 这里我们可以看到,我们在GameObject之上绑定的Animator组件是控制模型进行动画播放的. 而其属性Controller则对应一个Animator Controller文件,该文件可以在Animator窗口中打开,其是被设计为状态机形式的系统,多个状态之间的切换关系可以在该界面进行设置. Animator Controller中的每个状态则对应一个Animation Clip,每个Animation Clip是一个简单的动画单元,可以在Animat