• 您的位置:首頁 > 新聞動態 > Unity3D

    Unity3D自帶動(dòng)畫係(xì)統教程

    2017/8/9      點擊:

    導入人物模(mó)型,模型是不(bú)會動的(de),因為沒(méi)有添加動畫

    首先給模型添加Animator組件

    有的模型上自帶組件,是因為我們給他設置成了人形動畫,如果是普通動畫(huà)就需要自己(jǐ)添加。添(tiān)加好(hǎo)組件以後,我們發現上(shàng)麵缺少了一個animator controller(動畫控製器),我們需要(yào)添加一個拖進(jìn)去。在controller裏麵添加動畫剪輯。點擊進入animator視圖,找到文(wén)件中的Idle動畫,拖(tuō)進(jìn)去。橘(jú)黃為默認動畫。再拖進一個(gè)攻擊動畫Atrrack,右鍵Make Transition(創建過渡(dù)),此時運行會發現動畫自(zì)動播放了,如果(guǒ)我們不想讓動畫自動過渡,我(wǒ)們需要給過渡添加一個條件,點擊過渡線,選項卡中有一(yī)個過渡條件

    但(dàn)是現(xiàn)在過渡(dù)條件是空的,所以我們要自己(jǐ)創建一個過渡條(tiáo)件,回(huí)到(dào)左麵(miàn)的(de)Parameters選項中,我們給(gěi)他添加一個Triggerr(觸發)條件,然後在Conditions中設(shè)置。現在Attack是(shì)一次性的動作,不會重複,所以這個動作播放完就會停止,所以我們要讓Attackk回到Idle狀態。連回去。我們會發現當(dāng)點擊(jī)Trigger後,並(bìng)不會馬上從Idle狀態跳轉到Atrrack狀態(tài),這是因為我們默認勾選了Has Exit Time

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

    用代碼去控製人物攻(gōng)擊觸發條件。給人物添加(jiā)C#腳本。

    public class controller: MonoBehaviour {

    private Animator animator;

    void start(){
    animator = GetCompenent();

    }

    void Update(){

    if(Input.GetMouseButtonDown(0))

    {

    animator.SetTrigger("New Trigger");

    }

    }

    } //MonoBehaviour

    再添加一個人物跑動的動畫並用代碼控製(Run動畫),因為跑是一個持續性動作,當我按住W的時候他就應該持續的跑,所以我們要設置一個Bool類(lèi)型的條件。跑(pǎo)和停都是要馬上完成,所(suǒ)以都不應(yīng)該勾選Has Exiit Time。代碼(mǎ)實現 :

    if(Input.GetKeyDown(KeyCode.W))

    {

        animatorSetBool("isBool", true);

    }


    if(Input.GetKeyUp(KeyCode.W))

    {

        animatorSetBool("isBool", false);

    }


    91影视免费版下载-91麻豆国产福利精品-91麻豆精品一二三区在线-国产91系列视频在线观看