1. 程式人生 > >[Unity動畫]給人物模型新增簡單的動畫

[Unity動畫]給人物模型新增簡單的動畫

給unity人物模型新增動畫,首先你得有個模型,在預製體中,有匯入設定,重點是Rig設定。第一個選項是動畫的型別,因為匯入的是人物模型,所以應該選擇人形;第二個是人物骨骼,這裡已經設好了;第三個選項是對物體進行優化,建議勾選吧

 

將預製體拖拽到場景中後,系統會自動生成一個Animator元件,

我們需要建立一個Controller來控制動畫,在工程裡建立一個動畫控制器

Animator Controller,將這個控制器拖拽到Animator元件上。

開啟Animator視窗,找到資源中的動畫剪輯,這裡是Idle,拖到視窗中,就生成一個橘黃色的Idle的框框,播放時人物就會使Idle狀態。下面再給人物加上Attack狀態,這裡注意的是,單純把Attack的動畫剪輯拖拽到視窗中是灰色的,要設定一個過渡才能讓Attack的動畫播放出來,右鍵點選Idle,在選項中選擇Make Transition會出現一個箭頭,選中Attack狀態即可。我們還想讓Attack過渡到Idle狀態,所以再連線一根到Idle的箭頭



這裡右方設定面板有一個Has ExitTime選項,勾選的意思是當前一個動畫播放完,再播放下一個動畫,因為我們希望攻擊時瞬發的,所以不勾選。

在左邊欄中有引數選項,我們可以建立一個Trigger來觸發我們想要的動畫效果,給動畫過渡的Conditions中加上。Attack。現在播放時,我們點選Attack右邊的小圓圈,人物就會攻擊一次。當然人物可能會停在攻擊的動作,因為我們Attack的動畫設定不是迴圈,而Idle的動畫是迴圈,所以會一直處於Idle狀態,下面給人物掛載上指令碼來控制人物的動畫播放。

using UnityEngine;
using System.Collections;

public class Controller : MonoBehaviour {
    public Animator _animation;//建立一個Animator類,用來接受人物的元件
    void Awake()
    {
        _animation = GetComponent<Animator>();//獲取人物身上的動畫元件

    }
		
	void Update ()
    {
        if (Input.GetMouseButtonDown(0))//當按下滑鼠左鍵
        {
            _animation.SetTrigger("Attack");//觸發Attack動畫
        }
	
	}
}

現在播放時,點選左鍵就可以讓人物播放攻擊動畫了。