亚洲国产精品成人综合色_日韩av片无码一区二区三区不卡_久久电影网午夜鲁丝片无码_亚洲人成a片在线观看_亚洲 日本 欧洲 欧美 视频_久久久久日韩精品免费观看_激情综合亚洲色婷婷五月_无码日本精品一区二区网站_欧美亚洲国产自偷自偷_99精品国产成人综合

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

    Unity3D自帶動畫系統教程

    2017/8/9??????點擊:

    導入人(ren)物模型,模型是不(bu)會動(dong)的,因為沒有添加(jia)動(dong)畫

    首(shou)先給模(mo)型添加Animator組件

    有的模(mo)型上自帶組件,是(shi)因為我們給他設置成了(le)人(ren)形動畫,如果是(shi)普通動畫就需(xu)要自己添加。添加好組件以后,我們發現上面(mian)缺(que)少了(le)一個animator controller(動畫控制器),我們需要添加一個拖進去。在controller里面添加動畫剪輯。點擊進入animator視(shi)圖(tu),找(zhao)到文件中(zhong)的Idle動(dong)(dong)畫(hua)(hua),拖進去(qu)。橘(ju)黃為(wei)默認動(dong)(dong)畫(hua)(hua)。再拖進一(yi)個攻擊動(dong)(dong)畫(hua)(hua)Atrrack,右鍵Make Transition(創(chuang)建(jian)過渡(du)),此時運行會發現動畫自動播放了,如果(guo)我(wo)們不想讓動畫自動過渡(du),我(wo)們需要給(gei)過渡(du)添(tian)加一(yi)個條(tiao)(tiao)件(jian),點擊(ji)過渡(du)線,選(xuan)項卡中有一(yi)個過渡(du)條(tiao)(tiao)件(jian)

    但是(shi)(shi)現在過(guo)渡條件(jian)是(shi)(shi)空(kong)的,所以我們(men)要自(zi)己創建一(yi)個過(guo)渡條件(jian),回到左面(mian)的Parameters選項中,我們給他添加一個Triggerr(觸發(fa))條(tiao)件,然后在Conditions中設置。現在Attack是一次性的動作,不會重復,所以這個動作播放完就會停止,所以我們要讓Attackk回到Idle狀態。連回去。我們會發現當點擊Trigger后,并不會馬上從Idle狀態(tai)跳轉到Atrrack狀態(tai),這是因為我們默認勾選了Has Exit Time

    如果(guo)勾選了這(zhe)個(ge)按鈕,動畫就(jiu)會(hui)(hui)(hui)默認播(bo)(bo)(bo)放完才會(hui)(hui)(hui)播(bo)(bo)(bo)放下一個(ge)動畫,如果(guo)不勾選,就(jiu)會(hui)(hui)(hui)馬上播(bo)(bo)(bo)放。

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

    public class controller: MonoBehaviour {

    private Animator animator;

    void start(){
    animator = GetCompenent();

    }

    void Update(){

    if(Input.GetMouseButtonDown(0))

    {

    animator.SetTrigger("New Trigger");

    }

    }

    } //MonoBehaviour

    再添加一個人物跑動的動畫并(bing)用代碼(ma)控(kong)制(Run動畫),因為跑是一個持續性動作,當我按住W的(de)時候(hou)他就應該持續的(de)跑,所以我們(men)要設置(zhi)一個Bool類型的條件(jian)。跑(pao)和停(ting)都是(shi)要馬上完成,所以(yi)都不(bu)應該勾選Has Exiit Time。代(dai)碼實現(xian) :

    if(Input.GetKeyDown(KeyCode.W))

    {

        animatorSetBool("isBool", true);

    }


    if(Input.GetKeyUp(KeyCode.W))

    {

        animatorSetBool("isBool", false);

    }