• Unity3D自帶(dài)動畫係統教程

    2017/8/9      點擊:

    導入人物模型,模(mó)型是不會動(dòng)的,因為沒有添加動畫

    首先給模型添加Animator組件

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

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

    如果勾選了這個按鈕,動畫就(jiù)會默認播放完才會播放下一個動畫,如(rú)果不勾選,就會馬上(shàng)播放。

    用代碼去控製人物攻擊(jī)觸發條件。給人物(wù)添加C#腳本。

    public class controller: MonoBehaviour {

    private Animator animator;

    void start(){
    animator = GetCompenent();

    }

    void Update(){

    if(Input.GetMouseButtonDown(0))

    {

    animator.SetTrigger("New Trigger");

    }

    }

    } //MonoBehaviour

    再添加一個人物跑動的動畫並用代碼控(kòng)製(Run動畫),因為(wéi)跑是一個持續性動作,當我按住W的時候他就應該持續的跑,所以(yǐ)我(wǒ)們要設置(zhì)一個Bool類型(xíng)的條件。跑和停都是要(yào)馬上完成,所以都不應該勾選Has Exiit Time。代(dài)碼實(shí)現 :

    if(Input.GetKeyDown(KeyCode.W))

    {

        animatorSetBool("isBool", true);

    }


    if(Input.GetKeyUp(KeyCode.W))

    {

        animatorSetBool("isBool", false);

    }


    自愉色色,亚洲色孩,jk无遮拦,日日夜夜7799天天综合,999夜夜,7799天天综合天天综合网精品视频,日日夜夜精品视频7799,天天综合7799精品影视