## **animator与animation**
**animation**:这是遗留的动画组件,在Unity当前动画系统引入之前,它被用于游戏对象的动画目的。 这个组件被保留在Unity中,只是为了向后兼容。对于新项目,请使用Animator组件
要导入旧版动画,必须先在mport Settinas窗口的Big选项卡中将Animation Type设置为Legacy:
## 属性
| ***属性:*** | ***功能:*** |
| --- | --- |
| **Animation** | 自动播放时将播放的默认动画(必须要指定动画)|
| **Animations** | 可以从脚本访问的动画列表. |
| **Play Automatically** |设置动画应该在游戏开始时自动播放与否 |
| **Animate Physics** | 动画应该与物理相互作用吗? |
| **Culling Type** | 确定何时不播放动画 |
| **Always Animate** | 始终播放动画. |
| **Based on Renderers** | 基于默认动画姿态进行筛选. |
| **Based on Clip Bounds** | 基于剪辑边界的剔除(在导入期间计算),如果剪辑边界不在视图中,动画将不会播放. |
| **Based on User Bounds** |根据用户定义的边界进行剔除,如果超出了用户定义的边界,则将不会播放动画 |
1、选中需要添加动画的那个物体,在Inspector面板创建animation组件,然后勾选play Automatically(要先做这一步,否则下面create创建的是新版动画)
2、选择window--->animation 调出animation面板
3、选中需要添加动画的那个物体,然后点击animation面板的Create 创建动画文件;
点击录制动画:注意录制后![](https://img.kancloud.cn/27/d4/27d4dbf0e5a33bf527d590c816abe8c8_130x35.png)是红色的
点击`Add Property ` 添加类型 选择Transform/Rotation(这里我们做一个简单的旋转动画所以选Rotation)
![](https://img.kancloud.cn/5b/48/5b489af71f348d9567724ab11113d48e_175x30.png)
点击红框的三角选择关键帧,默认有两个关键帧(可以左键双击添加关键帧),每关键帧设置不同的y的角度数,它们会在指定的时间类连续起来
![](https://img.kancloud.cn/94/bb/94bb23c3237dc8c428579252d3cb7d2c_529x78.png)
为了兼容下面脚本的开门关门我们只保留两个关键帧开门和关门的状态
![](https://img.kancloud.cn/e3/aa/e3aa9f2104988add34280af3a2a8398e_485x108.png)
还可以点击下面Curves的切换为曲线图来修改
![](https://img.kancloud.cn/14/7f/147f441a0dbe8b7b79c4dba3aeeb94f2_301x86.png)
将动画文件拖进animation组件的Animation选项里
![](https://img.kancloud.cn/32/78/3278a73cf24221e69fc5c3824985c479_360x222.png)
运行查下看效果
接下来脚本操作点击们打开,在点级关上的效果
创建名为Door脚本,注意动画的名要与这脚本的名一致,否则会报错
将此脚本拖到实现动画的这个门上
```
using UnityEngine;
using System.Collections;
/// <summary>
///
/// </summary>
public class Door : MonoBehaviour {
public bool doorStatus = false;
public string animName = "Door";//动画名和脚本的名称必须相同
private Animation anim;
// Use this for initialization
private void Start()
{
anim = GetComponent<Animation>();
}
private void OnMouseDown()
{
Debug.Log(anim);
anim[animName].speed = -1;
//
if (doorStatus)
{
//很容易漏掉这一步
//anim[animName].time = 1;
if (anim.isPlaying==false)//动画没播的时候才从头开始播
{
// 关门时-1是倒着播的 不指定就是0~0
anim[animName].time = anim[animName].length;
}
//关门操作
anim[animName].speed = -1;
}
else
{
//开门操作 开门的时候本身默认就是从0开始的 从0秒播放到动画长度的秒数
anim[animName].speed = 1;
}
anim.Play(animName);
doorStatus = !doorStatus;
}
}
```
点击运行,在Game面板点击门查看效果
- C#
- 基础 System
- 命名规范
- 变量
- 数据类型
- 值类型
- 简单类型
- 整数类型
- 字符类型
- 浮点类型
- 布尔类型
- 枚举类型
- 结构体类型
- 引用类型
- 类类型
- 对象(Object)类型
- 字符串(String)类型
- 方法属性
- 动态(Dynamic)类型
- 数组类型
- 接口Interface
- 委托类型delegate
- 装箱和拆箱
- 指针类型
- 值类型与引用类型的区别
- Var类型
- 类型转换
- 隐式转换
- 显式转换
- 常量
- 常用函数
- 流程控制
- 循环
- 跳转语句
- 数组
- 数组查找
- 添加组元素
- 复制与克隆数组
- 删除数组元素
- 数组排序与反转
- 数组排序
- 冒泡排序
- 直接插入排序
- 选择排序法
- 数组对象
- 哈希表
- 其他
- 递归
- 属性与方法及方法重载
- 结构与类
- 类
- 构造函数与析构函数
- 继承
- 多态
- 泛型
- demo
- 汉字字符(串)比较
- 创建指定大小文件与读取大文件
- 小截屏软件功能
- 子窗体返回主窗体
- 判断是否为数字
- 获得字符串实际长度(包括中文字符)
- unity
- script脚本
- 脚本的生命周期
- 调试
- Unity Manual5.4
- Unity手册
- Working In Unity
- Unity 2D
- Graphics(图形)
- Physics(物理系统)
- Scripting(脚本)
- Multiplayer and Networking(多玩家和联网)
- Audio(音频)
- Animation(动画)
- UI
- Navigation and Pathfinding(导航和寻路)
- Unity Services(Unity服务)
- Virtual Reality(虚拟现实VR)
- Open-source repositories(开源代码库)
- Platform-specific(特定于平台的信息)
- Legacy Topics(旧版主题)
- Expert Guides(专家指南)
- 重要的类
- Object
- GameObject(重要)
- Component
- Transform(重要)
- Rigidbody
- ParticleSystem
- Behaviour
- Camera
- Animator
- AudioSource
- Animation
- AudioListener
- Light
- MonoBehaviour事件行为(重要)
- Terrain
- Collider
- Renderer
- Texture
- Mesh
- material
- Time
- Prefab预制件
- 功能demo
- 层级未知查找子物体
- 查找hp最小的敌人
- 查找最近的敌人
- 小项目之英雄无敌
- 界面操作
- Scene窗口
- Game窗口
- project窗口
- Hierarchy窗口
- 动画
- Animation重要API
- 2D
- Sprite(creator) Sprite Renderer
- Sprite Editor
- Sprite Packer(遗留功能)
- 排序组组件
- 切片精灵
- 精灵遮罩
- 精灵图集
- Tilemap
- 2D物理系统
- 全局设置(Project setting)
- 2D刚体(Rigidbody 2D)
- 碰撞(事件)消息
- 2D碰撞体(Collider 2D)
- 2D圆形碰撞体(Circle Collider 2D)
- 2D盒型碰撞体(BoxCollider 2D)
- 2D多边形碰撞体( Polygon Collider 2D)
- 2D边界碰撞体(EdgeCollider 2D)
- 2D胶囊碰撞体(CapsuleCollider 2D)
- 2D复合碰撞体(Composite Collider 2D)
- 2D物理材质(摩擦和弹性)(Physics Material 2D)
- 2D关节
- 2D距离关节(Distance Joint 2D)
- 2D固定关节(Fixed Joint 2D)
- 2D摩擦关节(Friction Joint 2D)
- 2D铰链关节(Hinge Joint 2D)
- 2D相对关节(Relative Joint 2D)
- 2D滑动关节(Slider Joint 2D)
- 2D弹簧关节(Spring Joint 2D)
- 2D目标关节(Target Joint 2D)
- 2D车轮关节(Wheel Joint 2D)
- 2D恒定力(Constant Force 2D)
- 2D 效应
- 2D区域效应(AreaEffector 2D)
- 2D浮力效应(BuoyancyEffector 2D)
- 2D点效应(PointEffector 2D)
- 2D平台效应(PlatformEffector 2D)
- 2D表面效应(SurfaceEffector 2D)
- 精灵动画
- 2D动画事件
- 重要类
- rigidbody2d
- 小窍门
- Unity中如何查找脚本挂载在哪个物体上