animation播放动画

1、播放默认动画

直接将动画拖入动画对象animation组件的animation变量中,然后加入如下代码既可以播放(此处采用toggle控制动画的播放)

    public Animation ani;

    public void OnPlayClicked(bool isOn)
{
if(isOn)
{
ani.Play();
}
}

2、采用AddClip方法

此方法为给animation组件通过addclip方法添加动画片段,然后就可以依次播放

    //addclip方法
public Animation ani;
public AnimationClip[] aniClip; public void OnPlayClicked(bool isOn)
{
if(isOn)
{
StartCoroutine(Play()) ;
}
}
IEnumerator Play()
{
ani.AddClip(aniClip[0], "1");
ani.Play("1");
yield return new WaitForSeconds(aniClip[0].length+2f);
ani["1"].time = aniClip[0].length;//动画反向播放
ani["1"].speed=-1;
ani.Play("1");
yield return new WaitForSeconds(aniClip[0].length + 2f);
ani.AddClip(aniClip[1], "2");
ani.Play("2");
}

3、采用animation组件的animations数组添加动画片段

在animation组件的animations数组中直接添加动画(此步骤相当于addclip方法),然后根据动画名称就可以播放了。

ani.Play(aniName);

4、直接用动画名字播放

        if (isOn)
{
titleAni["TitleMove"].speed = 2;
bottomAni["BottomMove"].speed = 2;
titleAni.Play();
bottomAni.Play();
}
else
{
titleAni["TitleMove"].speed = -2;
bottomAni["BottomMove"].speed = -2;
titleAni["TitleMove"].time = titleAni.clip.length;
bottomAni["BottomMove"].time = bottomAni.clip.length;
titleAni.Play();
bottomAni.Play();
}

动画复位

关于动画播放问题再次追加一点关于动画回到起始位置的问题,动画播放回到起始位置可用ani.Rewind();方法。
采用rewind方法时必须是动画播放过程中使用,stop()后时无法回到起始位置的。
调用rewind后动画虽然会回到原点,但是会继续重复播放,所以在此可以先取样,然后在停止播放。 ani.Play();
ani.Rewind();
ani.Sample();
ani.Stop();

使用上述方法可能会因为clip的现手顺序影响而导致无法复位。如下图所示,我需要播放的动画是Take01-Take04,如果没有Take001,且默认的播放动画animation为Take02,则在播放动画Take01过程时,动画无法直接复位,如果Take01设为默认动画,则除Take01以外,其他动画均无法复位。解决办法为找一个默认动画,只要初始位置为所需的状态即可,设为默认动画,同时,让它为Element0

动画复位还可以采用animator,即设置一个只有几帧的初始状态动画,需要复位是调用开关复位,可以是从any state进入初始动画的开关,也可以是从所有其他动画跳转到初始状态动画的开关(均采用一个参数控制),但是此方法有个问题,即如果在复位过程中存在animator的enabled==false情况(或者animator所在游戏物体setActive(false)qingkuang),则复位时初始动画虽然播放,但是不会复位(也许是因为初始动画是静止的,没有位置形态的改变)。

动画事件:

外部导入的动画legacy类型下(animation)无法在编辑的,也无法添加添加动画事件,但是只要ctrl+D复制一下,复制出来的即可编辑,但是animation要重新新建赋值

(二)与animation播放对比的更多相关文章

  1. 用Unity的Animation播放Animator动画Clip

    简单的动画,其实不需要Animator动画状态机管理,用Animation播放效率更高,但可能由于历史遗留问题,或网上下载的第三方资源,得到的是Animator资源,可以在Clip的Debug试图下, ...

  2. 搭建rtmp直播流服务之4:videojs和ckPlayer开源播放器二次开发(播放rtmp、hls直播流及普通视频)

    前面几章讲解了使用 nginx-rtmp搭建直播流媒体服务器; ffmpeg推流到nginx-rtmp服务器; java通过命令行调用ffmpeg实现推流服务; 从数据源获取,到使用ffmpeg推流, ...

  3. Android动画学习(二)——Tween Animation

    前两天写过一篇Android动画学习的概述,大致的划分了下Android Animation的主要分类,没有看过的同学请移步:Android动画学习(一)——Android动画系统框架简介.今天接着来 ...

  4. CISCO、H3C、华为三层交换机端口二三层切换命令对比

    很多人都在问H3C是否有像CISCO三层端口切换类似的命令 switchport . 答案是肯定的.有.很多人都不知道. 其实无论是思科还是H3C还是华为他们都有这样的命令.但是在H3C和华为中不经常 ...

  5. PYNQ系列学习(二)——pynq与zynq对比(一)

    Zynq可扩展处理平台是赛灵思新一代 FPGA的可编程技术的产品系列.与采用嵌入式处理器的FPGA不同,Zynq产品系列的处理系统不仅能在开机时启动,而且还可根据需要配置可编程逻辑.采用这种方法,软件 ...

  6. rdb和aof二种持久化方式对比(Redis)

    我们已经知道对于一个企业级的redis架构来说,持久化是不可减少的 企业级redis集群架构:海量数据.高并发.高可用 持久化主要是做灾难恢复,数据恢复,也可以归类到高可用的一个环节里面去 比如你re ...

  7. 二、深度解析HTML5之视频播放和音频播放

    一:视频播放 传统的视频音频播放是通过flash插件的形式完成,不是所有的浏览器都安装了flash插件,而且手机端不支持flash,这就导致视频和音频的播放会有很大的麻烦. 于是,HTML5增加音频和 ...

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

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

  9. CSS动画-transition/animation

    HTML系列: 人人都懂的HTML基础知识-HTML教程(1) HTML元素大全(1) HTML元素大全(2)-表单 CSS系列: CSS基础知识筑基 常用CSS样式属性 CSS选择器大全48式 CS ...

随机推荐

  1. [转]Linux下 tar.xz格式文件的解压方法

    现在很多找到的软件都是tar.xz的格式的,xz 是一个使用 LZMA压缩算法的无损数据压缩文件格式. 和gzip与bzip2一样,同样支持多文件压缩,但是约定不能将多于一个的目标文件压缩进同一个档案 ...

  2. C#控件及常用属性

    1.窗体(Form) 1.常用属性 (1)Name 属性:用来获取或设置窗体的名称,在应用程序中可通过Name 属性来引用窗体. (2) WindowState 属性: 用来获取或设置窗体的窗口状态. ...

  3. phpexcel来做表格导出(多个工作sheet)及设置单元格格式

    <?php /** * 简单实用Execl */ set_include_path('.'.get_include_path().PATH_SEPARATOR.dirname(__FILE__) ...

  4. Redis的持久化机制是什么?各自的优缺点?

    Redis 提供两种持久化机制 RDB 和 AOF 机制: 1.RDBRedis DataBase)持久化方式:是指用数据集快照的方式半持久化模式) 记录 redis 数据库的所有键值对,在某个时间点 ...

  5. php7和php5区别是什么

    PHP7距正式发布以及有挺长时间了,刚出道就号称比旧版本快了几倍,各种开源框架或系统运行在PHP7上速度效率提高了几倍.那么php7和php5之间的区别是什么?下面本篇文章就来给大家简单介绍一下,希望 ...

  6. Scala 学习笔记之集合(1)

    package com.citi.scala object CollectionDemo { def main(args: Array[String]): Unit = { /** * List */ ...

  7. Spark 学习笔记之 MONGODB SPARK CONNECTOR 插入性能测试

    MONGODB SPARK CONNECTOR 测试数据量: 测试结果: 116万数据通过4个表的join,从SQL Server查出,耗时1分多.MongoSparkConnector插入平均耗时: ...

  8. vue-hash-calendar,移动端日期时间选择插件

    按照惯例,先上效果图 vue-hash-calendar 基于 vue 2.X 开发的日历组件 支持手势滑动操作·1 原生 js 开发,没引入第三方库 上下滑动 切换 周/月 模式 [周模式中] 左右 ...

  9. Github | 吴恩达新书《Machine Learning Yearning》完整中文版开源

    最近开源了周志华老师的西瓜书<机器学习>纯手推笔记: 博士笔记 | 周志华<机器学习>手推笔记第一章思维导图 [博士笔记 | 周志华<机器学习>手推笔记第二章&qu ...

  10. 低效sql语句执行缓慢引起的大量占用服务器的CPU问题处理 (优化心得)

    1> 2> 3> 4> 5>删除不良的执行计划后执行时间仍然有150s,这实在是太慢了,继续查看原sql代码,发现父表的关联条件放在了子查询里,这是应该避免的 调整原sq ...