【Unity基础】4.动画Animation

2023-10-27

 【Unity基础】4.动画Animation

        大家好,我是Lampard~~
        欢迎来到Unity基础系列博客,所学知识来自B站阿发老师~感谢 

 (一)Unity动画编辑器

(1)Animation组件

    这一张我们要学习如何在unity编辑器中,编辑一个动画。其中所使用到的组件是Animation,那什么是Animation组件呢?

Unity中的Animation组件是用于控制游戏对象动画的组件。Animation组件可以让开发者创建和编辑对象的动画,以及在运行时控制动画的播放和暂停等操作。

Animation组件有以下几个主要属性和方法:

- Clip:表示动画的剪辑,即具体的动画片段。每个动画剪辑都包含了一系列的关键帧,来定义对象在动画中的状态变化。

- PlayAutomatically:设置为true时,动画将在游戏对象启用时自动播放;设置为false时,需要通过代码调用Play()方法来手动启动动画播放。

- WrapMode:定义动画的循环模式,包括Once(只播放一次)、Loop(循环播放)、PingPong(往返播放)等。

- CrossFade:使用淡入淡出的方式切换到指定的动画剪辑,可以平滑过渡。

- Stop:停止当前播放的动画,并重置到起始状态。

- Play:播放当前设置的动画剪辑。

- Pause:暂停当前播放的动画,可以通过调用Play()方法继续播放。

除了上述属性和方法外,Animation组件还提供了一些回调函数,如AnimationClip事件、AnimationEvent等,用于在动画播放过程中执行自定义的逻辑

    ok大致了解那么多,那么我们开始动手做第一个动画吧~

(2)创建Animation Clip

    我们刚才得知,unity的Animation是通过一个个Clip来表示动画的剪辑,即具体的动画片段。每个动画剪辑都包含了一系列的关键帧,来定义对象在动画中的状态变化。

    那么我们现在就来创建一个Animation Clip,首先动画也是一种资源,因此需要在Assets创建一个目录去保存它

    然后我们只需要右键create,选中Animation选项就可以了,可以正常rename进行重命名噢

    至于挂载同样很简单,只需要拖动至我们想要挂的物体上即可,我们就选上次文章创建的矩形吧,unity会帮助我们默认选中一个Animation组件去挂载这个clip

(3)动画编辑

    至此我们就成功给这个带铁锈材质的矩形挂上了动画,我们运行结果惊喜地发现!什么也没有...

    不要慌,这其实是很正常地,因为我们都还没有编辑这个动画,下面我们就要打开动画编辑器去实现想要的效果了

    我们可以在Window菜单栏选中Animation这个选项,然后就可以打开动画编辑器了,我们可以把这个tab放到Game窗口方便编辑

    我们看看这个编辑器,左上角是一排控制播放编辑录制得按钮,可以用来测试当前的动画效果,左下方有Add Property按钮,我们可以选择想要的属性去进行动画编辑,右方则是一个时间轴一样的东西,它是用来记录我们编辑好的动画帧

(二)第一个动画

(1)选择动画构成组件

    我们可以理解一个物体动画就是从开始时刻,到结束时刻之间,物体某些组件的某些属性发生了变化

    点击Add Property就可以选择我们想要发生变化的组件,比如下面我们就加了transform组件的Position属性

(2)动画帧

    Animation编辑器右方是我们控制动画帧的地方,其上方的数字刻度就是代表着第几帧,我们可以看到默认有一个第0帧来记录着物体的初始Position信息

    如果我们此时想实现第0帧到第30帧,这个矩形的位置从Y=0,到Y=3这个动画,我们需要分三步设计:

    首先我们要点击红色圈圈按钮,让动画编辑器进入编辑状态,不点击编辑是不生效的哟

    然后我们要调整第0帧物体的Y轴位置,确保其在0的位置,我们可以通过Scene中拖动绿轴来调整其Y轴位置,但是更建议直接在inspector面板中直接调整会更准确

    最后我们需要创建一个第30帧的动画帧,创建的方式是点击30这个数轴,右键Add key即可,紧接着就是选中这个等30帧,把物体的positionY值调整至3

        至此我们点击动画编辑器的播放键看看效果

(3)添加多个属性

    我们人类可以一边唱歌一边跳舞,unity的动画也可以一边上升一边旋转哟

    怎么做呢?我们只需要再次点击Add Property,选中Rotation属性,在第0帧的时候把选择角度设置为0,第30帧设置为360度即可刚好转一个圈了

    看看效果:

(三)常规操作

(1)删除操作

    我们之前添加过一个帧,那么如何删除这个帧呢?只需要在时间轴上选中想要删除的帧,右键选择Delete Keys选项即可

    如果想要删除一个被影响的属性呢?比如我不想它一边上圣一边旋转了,只想它单独旋转则只需要在Animation编辑器的左侧选中想要删除的属性,点击Remove Property即可

(2)批量选中

    如果我们想要批量选中多个关键帧,我们可以通过用鼠标左键去框选想要操作的帧信息

    也可以按住shift/ctrl键盘,点击来多选

好啦今天就到这里,感谢阅读!!!
点赞,关注!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Unity基础】4.动画Animation 的相关文章

  • 如何在android中从左向右移动图像

    我想使用 Android 动画在模拟器上从左到右翻译图像 我是 Android 动画新手 我怎么能这么做呢 Thanks ll new LinearLayout this ll setLayoutParams new LayoutParam
  • 如何让svg的颜色淡入淡出

    我想要一个 svg 对象从颜色 A 淡入颜色 B 然后无限期地返回到颜色 A 到目前为止 我使用的成功有限
  • 以编程方式更改滑动时的 ViewPager 动画持续时间

    我正在使用以下代码更改幻灯片 viewPager setCurrentItem index true 但变化太快了 有没有办法手动设置动画速度 I ve wanted to do myself and have achieved a sol
  • 有没有办法在android 2.1中不使用动画来旋转按钮

    我正在寻找旋转按钮的方法 不使用动画 我不想使用动画 因为this https stackoverflow com questions 8037185 onlclick listener is not working properly 如果
  • 如何降低 PickerView 中选择行的速度?

    我的目标是创建一台老虎机 其中的行一排一排地旋转 它们需要一排一排地停止旋转 然而 为了让它看起来漂亮 这些行需要旋转至少 3 秒 我认为 PickerView 是最好的选择 因为我不知道如何以不同的方式进行这项工作 当这是我的代码时 se
  • 向下滑动显示textview动画

    我有兴趣在我的 Android 应用程序中添加一个切换 TextView 可见性的动画 我希望它不只是将可见性设置为 Visibility GONE 和 Visibility VISIBLE 相反 我希望它具有类似 jquery 的幻灯片效
  • Android:旋转动画完成动画后恢复到真实状态?

    我将在 我的应用程序 中旋转图像 旋转一切正常 但是 当我旋转动画完成时 图像将返回到其先前的位置 我想要的是将图像保持在旋转状态 而不是让它回到真实状态 那么怎样才能让它成为可能呢 要旋转图像 我使用以下代码
  • android 旋转动画

    我正在尝试制作旋转图像动画 我需要旋转一个图标itself就像他们在进度条中所做的那样 但我得到的是围绕一个圆圈旋转的图像 这是我的动画代码
  • JavaFX 过渡动画等待

    这么快 我正在做一个演示计算机图形绘制方法的程序 我需要创建时间线或操作历史记录 例如 placeVertex x y moveVertex newX newY 等 并迭代 向前和向后 自动或手动 我已经通过使用命令设计模式实现了这一点 但
  • 动画 div 高度一个接一个 onload javascript

    我已经成功地开始了我的动画工作 现在我希望其余的动画在每个动画之后稍微延迟div高度动画及其引起的问题 我尝试过使用getElementsByClassName但这并没有奏效 我已经发布了到目前为止的进展here https codepen
  • Matplotlib 动画:如何动态扩展 x 限制?

    我有一个简单的动画情节 如下所示 import numpy as np from matplotlib import pyplot as plt from matplotlib import animation First set up t
  • 如何在某个点(75%)开始动画?

    我接听这个问题 https stackoverflow com questions 69888696 how to reasonably animate font awesome lock icons 到目前为止我所拥有的 lock cli
  • 如何在 Xamarin.Forms 中设置不透明度动画

    我想知道如何对屏幕上可见元素的不透明度进行动画处理 例如 对于 Entry 我得到了这个 this Animate d gt Debug WriteLine anim d Username Opacity AnimationTime d A
  • 在 R 中导入 png 文件并转换为动画(.mp4)

    我正在尝试用 R 中的几个 png 文件创建一个简短的动画 我尝试了 packagemagick但只有当我将它们保存为 gif 时它才有效 当我尝试另存为 mp4 时 它将生成一个 mp4 文件 但一旦打开它 只会显示第一张图像 我的代码是
  • 如何在两个动画画布元素之间进行通信?

    我想在两个动画画布元素之间进行通信 我使用 Adob e Animate CC 制作了两个 html5 canvas js 动画 我已将这两个元素放入一个 html 页面中 我可以成功地从这些动画中调用函数 在下面的代码中成功触发了警报 我
  • 如何消除使用 DrawerLayout 打开 Activity 时的延迟?

    我有一个带有 DrawerLayout 的活动 但每当它打开时 都会有一个延迟 就像屏幕变白然后绘制我的屏幕一样 这发生在转换完成后 所以看起来屏幕动画过渡有点跳跃 在将视图与 ButterKnife 绑定后 我尝试将其放在 OnCreat
  • Matplotlib 动画未显示

    当我在家里的电脑上尝试这个时 它可以工作 但在工作的电脑上却不行 这是代码 import numpy as np import matplotlib pyplot as plt import matplotlib animation as
  • RealityKit:更改 ModelEntity 的比例而不改变其位置

    我有一个从 A 点移动到 B 点的 ModelEntity 动画 需要一段时间才能完成 当用户点击 ModelEntity 时 我也想向 ModelEntity 添加收缩动画 我尝试将缩放动画直接添加到 ModelEntity 视图 mov
  • 自定义 UITableViewRowAnimation 或持续时间

    我有一个用户可以拖动的应用程序UITableViewCells从一TableView到另一个 我通过在用户触摸的 UITableViewCell 顶部渲染一个 虚拟 单元格来实现此目的 并禁用 真实 单元格 然后我在目标中插入一个新行UIT
  • Raphael JS 中的动画字体大小是否有流畅的过渡可能性?

    到目前为止似乎它不流畅 但波涛汹涌 例如 如果您有一个 font size 14 的状态属性 并且想要以动画方式显示 font size 16 的状态 则过渡看起来并不平滑 它分两步跳跃 首先更改为 15 然后更改为 16px 可以强迫它看

随机推荐

  • Hadoop集群搭建记录

    本文目录 写在前面 写在前面 本系列文章索引以及一些默认好的条件在 传送门 因为课程需要 我们要进行Eclipse的安装操作 eclipse需要是CentOS下的 网址在 传送门 在出现的页面中 根据自身的机型选择合适的类型 博主为x86
  • 基础三 * 下 【vim 编辑器】 【管道】【文件内容浏览命令】

    目录 vim 编辑器 管道 文件内容浏览命令 练习 vim 编辑器 前言须知 1 vim 是个啥 其实 vim 类似于 windows 上的记事本 能够编辑 保存 复制 粘贴 搜索 替换等等
  • AI开放平台能力集合

    背景 随着AI技术的兴起及其逐步在各业务领域落地 越来越多的公司将其业务中使用到的底层AI能力开放出来 通过付费的模式提供给不具备建立AI能力的公司使用 AI技术包含非常多不同的方向 如文档识别 人脸人体识别 NLP语义分析以及大数据挖掘等
  • Linaro 作为白金会员加盟 Zephyr 项目

    转载自 https www zephyrproject org linaro joins zephyrtm project platinum member 作者 Zephyr 本文地址 https linux cn article 7817
  • Mybatis-Plus:实现自定义SQL

    目录 1 简介 2 自定义SQL具体实现 2 1 注解SQL 2 2 Wrapper传参 注解SQL 2 3 Wrapper传参 xml文件SQL 2 4 正常传参 XML文件SQL 3 总结 1 简介 Mybatis Plus 以下简称M
  • mybaties-plus 代码成器使用笔记

    1 简介 MyBatis Plus Generator 可以生成 Controller Service Mapper Entity 也支持自写 SQL 的 mapper 步骤 1 数据库中创建相应表 2 引入maven依赖 freemark
  • 用gdb调试core dump文件

    尊重原创 http blog chinaunix net u2 83905 showart 2134570 html 在Unix系统下 应用程序崩溃 一般会产生core文件 如何根据core文件查找问题的所在 并做相应的分析和调试 是非常重
  • php获取当前文件夹下所有图片大小,PHP获取文件夹大小函数用法实例

    本文实例讲述了PHP获取文件夹大小函数用法 分享给大家供大家参考 具体如下 获取文件夹大小 function getDirSize dir handle opendir dir while false FolderOrFile readdi
  • layui layer弹出层通过offset属性定位弹出层在光标处弹出(event.clientY和event.clientX)失败。

    将弹出层弹出位置定位到光标处 大小超过父弹出层的部分无法显示 js 页面层 自定义 more click function event layer open id moreMenu type 1 title false closeBtn 0
  • BACnet协议栈apdu_set_confirmed_handler函数中的确认型回调函数是如何传参的

    BACnet协议栈中的确认型回调函数通常会被传入三个参数 BACNET ADDRESS src uint8 t apdu和uint16 t apdu len BACNET ADDRESS src参数表示请求的源地址 它是一个指向BACNET
  • Redis7之实现分布式锁(九)

    9 1 分布式锁需要的条件和刚需 独占性 任何时刻有且只有一个线程持有这个锁 高可用 若redis集群环境下 不能因为某一个节点挂了而出现获取锁和释放锁失败的情况 高并发请求下 依旧性能很好 防死锁 不能出现死锁问题 必须有超时重试机制或者
  • QT 如何保存登陆的用户信息

    使用QQ大家多知道需要一个账户来登陆 不止QQ啦 其实还有很多需要账户的 所以就需要将登陆用户的信息保存下来 此文使用的是 申请new一个指针来保存登陆用户的信息 并设置成后续的的操作都能读到此登陆值 好了 直接上代码 先看头文件怎么写 i
  • 学习笔记 JavaScript ES6 模块化Module

    学习内容 export import as import default 模块化的规范 1 CommonJS Node js 这是出现的比较早的一种规范 他是在Node js中的一种模块化规范 他的局限性是基于Node虽然能在服务器端实现模
  • 计算机视觉走向如何?分割大模型全面盘点(SAM/SegGPT/SEEM等)

    点击下方卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 今天自动驾驶之心很荣幸邀请到小乌龟 为大家分享分割大模型近期的发展情况 如果您有相关工作需要分享 请在文末联系我们 gt gt 点击进入 自动驾驶之心 语义分割 技术交流
  • linux high memory机制引发的问题

    linux high memory 32bit操作系统 linux将逻辑地址空间分为两部分 0 3G是用户地址空间 3 4G是内核地址空间 所以linux内核只能够访问物理地址空间大小为1G 也就是物理地址0 1G 为了能够访问所有的物理地
  • 2021-01-13

    yum源配置 本地yum源配置 1 备份 将 etc yum repos d目录下的文件打包压缩 复制粘贴到 tmp 目录下 2 建立本地源文件 vim etc yum repos d local repo 3 挂载光盘 将光盘放入光驱 如
  • pikachu的盲注(base on boolian)

    pikachu的盲注 base on boolian 发现只能存在kobe and 1 1 连or 都会报错 利用and来构造payload kobe and ascii substr database 1 1 112 利用burpsuit
  • 用 Unity easyAR 开发 AR 发布 Android ios遇到的问题(包括easyAR recording 录屏 用法和问题)(图文详情)

    用 Unity easyAR 开发 AR 发布 Android ios遇到的问题 包括easyAR recording 录屏 用法和问题 图文详情 前言 软件环境 发布Android 配置 发布ios 配置 用easyAR自带的录屏插件实现
  • Maven项目配置发布环境

    在Spring Boot项目 我们通常指定不同的开发环境的资源配置都是使用 spring profiles active dev 或者是启动jar上加入参数配置 Dspring profiles active dev 下面介绍另外一种通过
  • 【Unity基础】4.动画Animation

    Unity基础 4 动画Animation 大家好 我是Lampard 欢迎来到Unity基础系列博客 所学知识来自B站阿发老师 感谢 一 Unity动画编辑器 1 Animation组件 这一张我们要学习如何在unity编辑器中 编辑一个