Unity中的动画系统(一)——创建一个动画,Animation窗口各项功能

本文介绍了如何在Unity中创建一个动画,包括在Animation窗口中添加属性,理解Samples概念,添加和编辑关键帧,使用Animation Event,以及通过Curves视图调整动画曲线。此外,还详细阐述了不同切线模式对动画的影响,以及如何设置动画的循环播放或单次播放。
1.创建一个动画

选中一个GameObject
在这里插入图片描述
在菜单栏中Window处选择Animation,弹出窗口,点击create,并进行命名。
在这里插入图片描述

创建完毕后,选择创建出的动画控制器,菜单栏Window中选择Animator,弹出动画控制器窗口
在这里插入图片描述
在这里插入图片描述

2.Animation窗口

点击“Add Property”,可为动画添加属性
在这里插入图片描述
窗口中“Samples”的数值为1秒的动画帧数,此处图中显示1秒有60帧

添加属性后,右侧出现两个关键帧,分别为首尾关键帧,在第1秒的开头和第1秒的末尾

### 如何在 Unity 中为 Image 组件制作动画 #### 创建 Animation 控制器和剪辑 为了使 `Image` 组件具有动画效果,在 Unity 中通常会创建一个专门用于管理这些动画的控制器以及相应的动画剪辑。这可以通过右键点击项目窗口中的 Assets 文件夹,选择 Create -> Animator Controller 来完成。 #### 设置目标对象上的 Animator 组件 确保要应用动画的对象上已经附加了一个 `Animator` 组件,并将其关联到刚刚创建好的 Animator Controller 上。对于带有 `Image` 组件的游戏对象来说也是如此[^1]。 #### 编写脚本控制属性变化 如果想要更灵活地改变图片的状态而不局限于预设的关键帧数据,则可以在 C# 脚本里动态修改 `Sprite` 属性或其他相关属性(比如颜色透明度)。这里给出段简单示例代码展示如何切换精灵: ```csharp using UnityEngine; using UnityEngine.UI; public class ChangeImage : MonoBehaviour { public Sprite[] sprites; // 存储多个可替换使用的精灵资源 private int currentIndex = 0; void Update(){ if(Input.GetKeyDown(KeyCode.Space)){ NextSprite(); } } void NextSprite(){ var imageComponent = GetComponent<Image>(); currentIndex++; if(currentIndex >= sprites.Length){ currentIndex = 0; } imageComponent.sprite = sprites[currentIndex]; } } ``` 这段代码允许开发者通过按下空格键来循环播放组预先准备好的精灵列表,从而实现种简易的手动翻页式的动画效果。 #### 利用内置工具生成复杂过渡效果 除了手动编写逻辑外,还可以利用 Unity 自带的时间轴编辑功能——Timeline 或者 Cinemachine 来构建更加复杂的视觉转换过程。不过这类方法更适合处理涉及多元素协同工作的场景,而不仅仅是单 `Image` 的变换。 #### 配置 Canvas 和 Render Mode 参数 考虑到最终呈现出来的画面质量,合理配置承载 UI 元件的画布 (Canvas) 及其渲染模式也非常重要。例如当希望界面始终位于所有其他图形之上时应选用 **Screen Space - Overlay**;而对于那些需要跟随特定视角变动的情况则推荐采用 **Screen Space - Camera** 方式[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值