• 您的位置:首頁 > 新聞動態(tài) > Unity3D

    Unity3D自帶動畫系統(tǒng)教程

    2017/8/9??????點(diǎn)擊:

    導(dǎo)入人物模型,模型是不會動的,因?yàn)闆]有添加動畫

    首先給模型添加Animator組件

    有的模型上自帶組件,是因?yàn)槲覀兘o他設(shè)置成了人形動畫,如果是普通動畫就需要自己添加。添加好組件以后,我們發(fā)現(xiàn)上面缺少了一個(gè)animator controller(動畫控制器),我們需要添加一個(gè)拖進(jìn)去。在controller里面添加動畫剪輯。點(diǎn)擊進(jìn)入animator視圖,找到文件中的Idle動畫,拖進(jìn)去。橘黃色為默認(rèn)動畫。再拖進(jìn)一個(gè)攻擊動畫Atrrack,右鍵Make Transition(創(chuàng)建過渡),此時(shí)運(yùn)行會發(fā)現(xiàn)動畫自動播放了,如果我們不想讓動畫自動過渡,我們需要給過渡添加一個(gè)條件,點(diǎn)擊過渡線,選項(xiàng)卡中有一個(gè)過渡條件

    但是現(xiàn)在過渡條件是空的,所以我們要自己創(chuàng)建一個(gè)過渡條件,回到左面的Parameters選項(xiàng)中,我們給他添加一個(gè)Triggerr(觸發(fā))條件,然后在Conditions中設(shè)置?,F(xiàn)在Attack是一次性的動作,不會重復(fù),所以這個(gè)動作播放完就會停止,所以我們要讓Attackk回到Idle狀態(tài)。連回去。我們會發(fā)現(xiàn)當(dāng)點(diǎn)擊Trigger后,并不會馬上從Idle狀態(tài)跳轉(zhuǎn)到Atrrack狀態(tài),這是因?yàn)槲覀兡J(rèn)勾選了Has Exit Time

    如果勾選了這個(gè)按鈕,動畫就會默認(rèn)播放完才會播放下一個(gè)動畫,如果不勾選,就會馬上播放。

    用代碼去控制人物攻擊觸發(fā)條件。給人物添加C#腳本。

    public class controller: MonoBehaviour {

    private Animator animator;

    void start(){
    animator = GetCompenent();

    }

    void Update(){

    if(Input.GetMouseButtonDown(0))

    {

    animator.SetTrigger("New Trigger");

    }

    }

    } //MonoBehaviour

    再添加一個(gè)人物跑動的動畫并用代碼控制(Run動畫),因?yàn)榕苁且粋€(gè)持續(xù)性動作,當(dāng)我按住W的時(shí)候他就應(yīng)該持續(xù)的跑,所以我們要設(shè)置一個(gè)Bool類型的條件。跑和停都是要馬上完成,所以都不應(yīng)該勾選Has Exiit Time。代碼實(shí)現(xiàn) :

    if(Input.GetKeyDown(KeyCode.W))

    {

        animatorSetBool("isBool", true);

    }


    if(Input.GetKeyUp(KeyCode.W))

    {

        animatorSetBool("isBool", false);

    }