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

一:4.6之前旧版动画系统(Animation)
二:4.6版本之后新版动画系统(Animator)
方法:
动画分割方法:(控制动画播放的动画)
1. Play
2. CrossFade
3. CrofdFadeQueued
IsPlaying()指定的动画是否正在播放
Stop()停止播放指定的动画
属性:
isPlaying:当前是否有动画正在播放

Rig标签中的Animation Type要是Legacy(旧版动画系统)

动画融合(通过指定关节来播放动画)

动画帧事件(当动画播放到某一帧时执行指定的方法,比如当攻击动作完成后才执行 掉血或其他方法)
第一步:把动画拷贝到另外一个文件中(Ctrl+d)
原因:因为通过动画分割得到的动画,属性为只读属性,不可添加帧事件
第二步:将拷贝出来的动画添加到Animation组件中
第三步:打开 Windows中的Animation
第四步:找到添加事件的帧(点击面板上的小条状物体)
第五步:添加方法

//更改帧动画的播放速度
ani["Walk"].normalizedTime

学习总结:
1.设置动画的层级-ani ["Idle"].layer = 1;设置动画的层级
2.设置动画的播放模式-ani ["Idle"].wrapMode = WrapMode.Loop;
3.(动画融合)通过指定的关节来播放动画
ani ["Walk"].AddMixingTransform (_mix_leftleg);
4.直接播放行走动画-ani.Play("Walk");
5.动画过度:但只能切换同一层级的动画,如果想播放不同层级的动画,则必
须先要停止所有的动画再执行本次动画(代码1和代码2)
代码一:ani.CrossFade("Walk");
代码二:ani.CrossFade("Walk",0.3f,PlayMode.StopAll);
6.播放动画队列:是物体模型动作更流畅。
有四个参数:动画名称 过度长度 队列模式 播放模式
ani.CrossFadeQueued("Attack",0.3f,QueueMode.PlayNow,PlayMode.StopSameLayer);
7.调用在target物体上有一个TakeDamage方法,参数Power传过去
target.SendMessage ("TakeDamage",Power);
( SendMessage发送信息
使目标物体执行一个方法
目标物体所挂载脚本中的方法
参数()

using UnityEngine;
using System.Collections;

public class TestAnimation : MonoBehaviour
{
    public Animation ani;
    public Transform _mix_leftleg;
    public Transform _mix_rightleg;
    public Transform _mix_hand;
    public Transform _mix_body;
    public Transform _mix_head;
    void Start()
    {
        //动画播放模式
        ani ["Idle"].wrapMode = WrapMode.Loop;
        ani ["Walk"].wrapMode = WrapMode.Loop;
        //指定动画层级
        ani ["Idle"].layer = 1;
        ani ["Walk"].layer = 1;
        ani ["Attack"].layer = 2;
        ani ["Damage"].layer = 3;
        ani ["Death"].layer = 4;
        //动画融合,动画融合(通过指定关节来播放动画)
        ani ["Walk"].AddMixingTransform (_mix_leftleg);
        ani ["Walk"].AddMixingTransform (_mix_rightleg);
        ani ["Attack"].AddMixingTransform (_mix_hand);

    }
    void OnGUI()
    {
        //用OnGUI绘制一个按钮,返回的是一个bool值
        if(GUI.Button(new Rect(10,10,100,80),"Walk"))
        {
            //直接行走
            //ani.Play("Walk");
            //动画过度
            //ani.CrossFade("Walk");
            ani.CrossFadeQueued("Walk",0.3f,QueueMode.PlayNow,PlayMode.StopSameLayer);
        }
        if(GUI.Button(new Rect(10,105,100,80),"Attack"))
        {

            //动画过度
            //只能切换同一层级的动画,如果想播放不同层的动画,就必须先停止所有的动画,即加上两个参数
            //ani.CrossFade("Attack");
            //播放动画队列
            //四个参数:1动画名称  2过渡长度 3队列模式 4播放模式
            ani.CrossFadeQueued("Attack",0.3f,QueueMode.PlayNow,PlayMode.StopSameLayer);

        }
        if(GUI.Button(new Rect(10,205,100,80),"Damage"))
        {

            ani.CrossFadeQueued("Damage",0.3f,QueueMode.PlayNow,PlayMode.StopAll);

        }

    }

    void AttackEvent()
    {
        Debug.Log ("Attack  Attack  Attack");
    }

}
时间: 2024-10-10 11:07:17

4.6之前旧版动画系统(Animation),AI的相关文章

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

本文结合一个很简单的动画demo,分别采用2种方法,来对比Animation和Animator的使用方式: 方法1:单独使用Animation 方法2:Animation结合Animator 动画Demo 两个动画.一个是移动,一个是缩放. 实现方式的对比 一.单独Animation来实现 空场景,找到一张Sprite图片,拖到面板中,右键添加Animation组件.如下: 点中这张pig猪的图片,点击Unity的 Window->Animation->Animation.出现如下: 这个时候

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

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

解决Unity3d 4.3 动画系统带来的烦恼

近期有非常多同学问我关于unity3d 4.3更新之后动画系统和曾经不一样了,并且之前用的非常熟练的创建动画和修修改画非常多操作都不好用了,那么在这里和大家分享一下三杀的个人经验,方便大家使用unity3d 4.3的动画系统. 首先,我们要明白知道的一点是Unity3d 是逐步的将老的动画系统删除,取而代之的是新的动画系统叫做Mecanim.所以就会出现变来变去,越变越不好用的情况,只是等到Unity3d把旧版动画系统全然删除的时候,一个崭新的动画系统就会展如今我们眼前,期待是这样吧. (下面内

二、Mecanim 动画系统(第二部分)

一.Mecanim概述 Mecanim是Unity一个丰富且精密的动画系统,它提供了: 1.为人形角色提供的简易的工作流和动画创建能力. 2.Retargeting(运动重定向)功能,即把动画从一个角色模型应用到另一个角色模型上. 3.针对Animation Clips(动画片段)的简易工作流,即针对动画片段以及它们之间的过渡和交互过程的预览能力.这样可以使动画师更加独立地进行工作,而不用过分地依赖程序员,从而在编写游戏逻辑代码之前即可预览动画效果. 4.一个用于管理动画间复杂交互作用的可视化编

Unity3D之Mecanim动画系统

Mecanim动画系统 Mecanim Animation System Date:2013-05-16 07:48 Unity has a rich and sophisticated animation system called Mecanim. Mecanim provides: Unity有一个丰富并且精密的动画系统叫做Mecanim.Mecanim提供了: Easy workflow and setup of animations on humanoid characters. 为类

Unity3d 动画系统

Unity3d学习笔记 本篇简单介绍Unity3d中的动画系统及其使用. 模型导入 以带动画的FBX文件为例,unity版本为5.0以上版本. 新版动画系统 当你导入FBX文件后,会发现模型具有一个Animator(状态机)组件. 我们一般将它成为(新)动画系统,新动画系统和旧版的动画系统(unity3d 4.3之前版本)的区别就在于使用了Animator组件代替了原来的Animation. 旧版动画系统 同理当你使用的是旧版的动画系统就会发现是Animation组件. 在高版本的unity3d

unity3D5旧动画系统注意事项

最近在写人物控制时因为习惯用旧动画系统所以也没想那么多,就直接在新系统下按照老样子写了,突然发现animation.play不能用了,后来重新声明了变量: public Animation anim; anim.play(); 才编译通过,然后发现动画组建始终拖不进去,检查后发现原来新的系统所有动画都默认了Humanoid,旧的动画系统必须是legacy,改成了legacy以后就可以轻松拖进去了,还有模型的属性也是默认的Humanoid,想了一晚上居然是这样也是醉了,不细心导致的时间浪费,大家不

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

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

【Unity】第10章 Mecanim动画系统

分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 Unity提供了两种动画系统:一种是早期版本提供的旧版(Legacy)动画系统,旧版本(Legacy)以后将逐步被淘汰掉并在新版中不再支持.另一种是Mecanim动画系统,这是建议使用的新版动画系统. 如果你是初学者,就不要去学旧版(Legacy)动画了,直接学习Mecanim动画系统即可. 二.什么是Mecanim动画系统 Mecanim(肌肉线条)是Unity提供的新版动画系统,Unity计划将工作流完全并入Me