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值取反,赋值给原来的门的状态
    }
}

 

  • 10
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值