## **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 創建動畫文件;
點擊錄制動畫:注意錄制后是紅色的
點擊`Add Property ` 添加類型 選擇Transform/Rotation(這里我們做一個簡單的旋轉動畫所以選Rotation)

點擊紅框的三角選擇關鍵幀,默認有兩個關鍵幀(可以左鍵雙擊添加關鍵幀),每關鍵幀設置不同的y的角度數,它們會在指定的時間類連續起來

為了兼容下面腳本的開門關門我們只保留兩個關鍵幀開門和關門的狀態

還可以點擊下面Curves的切換為曲線圖來修改

將動畫文件拖進animation組件的Animation選項里

運行查下看效果
接下來腳本操作點擊們打開,在點級關上的效果
創建名為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中如何查找腳本掛載在哪個物體上