Unity基础(06)—— 动画(Animation)的录制与播放

一、录制动画:

将物体移动,操作的过程录制下来保存到一个物理文件,在下次使用的时候直接用代码来调用它即可。

如让物体TheCh1 绕Y轴转动90度的动画录制

1、在Unity中打开动画视图

 

2、选择指定物体,为其添加 Animation 组件 

 

3、选择要录制的物体,点击 Create 按钮。(注意录制的文件必须要放在 Project 的 Assets 目录下)

 

4、为该动画添加属性,旋转为 Transform 的Rotation 属性

 

5、时间轴的数字含义,如 0:30,表示0秒30帧。默认的是60帧为一秒。

 

6、在时间轴的指定时刻上双击鼠标左键可以创建一个新的时间点。竖直的红线表示在该时刻时,物体所在的位置与状态。

在时间轴上双击创建一个时间点,然后将竖直的红线拖动到该时间点上,再设置物体绕Y轴旋转的角度。

  

   

  【注意】:录制完毕之后,点击录制模式按钮来关闭录制。

7、点击Unity的播放按钮时,让录制的动画开始播放。

首先要将录制的动画拖拽到 Animation 上,才可以在点击播放时,自动播放刚刚录制的动画

 

二、通过C# 脚本来让其点击该物体时,实现物体的旋转(即点击该物体时,播放刚刚录制的动画)

1、Animation 的常用属性及方法(Animation

animation.speed = 1 正常播放;animation.speed = -1 倒着播放;animation.speed = 2 快进

  

2、动画的播放状态:Once 为播放一次;Loop 为循环播放

 

3、通过代码来控制点击物体时是否播放动画

(1)、取消 自动播放按钮,以通过点击物体来控制播放

 

(2)、对应的C#脚本代码如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TurnLeft : MonoBehaviour 
{
    private bool DoorState = false; //用一个bool值来表示门的状态
    private Animation anim;
    public string animName = "OpenDoor"; //将动画片段的名称用一个共有变量来表示

	// Use this for initialization
	void Start () {
        // 找到动画组件引用
        anim = GetComponent<Animation>();
	}

    private void OnMouseDown()
    {
        if (DoorState)
        {
            if (anim.isPlaying == false) //判断该动画是否正在播放
            {
                // 设置开始播放的时间为最后的时刻,默认是从0s开始播放的
                anim[animName].time = anim[animName].length;
            }
            
            // 关门操作:动画从最后的时刻开始播放到0s停止
            anim[animName].speed = -1;
        }
        else
        {
            // 开门操作:动画从0s到1s播放
            anim[animName].speed = 1;
        }
        anim.Play(animName); // 播放动画
        DoorState = !DoorState; // bool值取反,赋值给原来的门的状态
    }
}

 

### 如何在Unity Timeline中录制动画 #### 创建Timeline资产并关联对象 为了能够在Unity的Timeline中成功录制动画,首先需要创建一个新的Timeline资产。这可以通过在场景中新建一个空物体,并命名为`TimelineController`来实现[^4]。接着,在该物体上添加`Playables > Timeline`组件。 ```csharp GameObject timelineObject = new GameObject("TimelineController"); timelineObject.AddComponent<TimelineAsset>(); ``` #### 添加Animation Track至Timeline 一旦有了Timeline控制器,下一步是在其内部增加一条`Animation Track`用于承载具体的动画数据[^2]。通过右键点击Timeline编辑器内的空白区域选择`Add Animation Track`完成这一操作。此时应该能看到新建立的轨道被列于界面之中。 #### 准备目标游戏对象以便录制 确保希望对其执行动作的游戏对象已经被正确放置到了场景当中,并且处于可交互的状态下。对于这些对象而言,还需要确认它们具备相应的Animator Controller或者其他形式的动作控制系统,这样才能让Timeline知道要影响哪些属性变化[^1]。 #### 开始录制过程 当一切准备就绪之后,就可以着手进行实际的动画记录工作了。切换到播放模式前先暂停项目运行;随后激活Timeline面板里的录制功能——通常表现为红色圆点图标。现在可以自由拖拽选定的对象调整姿态或变换位置,所有改动都会自动转化为时间线上的关键帧信息存储下来。 需要注意的是,如果尝试直接在Animation窗口内开启录制而不在Timeline环境下,则可能会遭遇无法正常工作的状况,这是因为两者之间存在一定的兼容性差异所致。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值