赞
踩
一、录制动画:
将物体移动,操作的过程录制下来保存到一个物理文件,在下次使用的时候直接用代码来调用它即可。
如让物体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值取反,赋值给原来的门的状态
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。