Unity3D自帶動畫係(xì)統教程
導入人物(wù)模型,模型是不會動的,因為沒有添加動畫
首先給(gěi)模型添加Animator組件
有的(de)模型上自帶(dài)組件,是因為我們給他設置成了人(rén)形動畫,如果是普(pǔ)通動畫就(jiù)需要自己添加(jiā)。添加好組件以後,我們發現上麵缺(quē)少了一個animator controller(動畫控製器),我們需(xū)要添加一個拖進去。在controller裏麵添加動(dòng)畫剪輯(jí)。點擊進入animator視圖(tú),找到文(wén)件中的(de)Idle動畫,拖進去(qù)。橘黃為默認動畫。再拖進一(yī)個攻擊動畫(huà)Atrrack,右鍵Make Transition(創建過渡),此(cǐ)時運行會發現動畫自動播放了,如果我們不想讓動畫(huà)自動過渡,我們需要給過(guò)渡(dù)添(tiān)加一(yī)個條件,點擊過渡線(xiàn),選(xuǎn)項卡中有一個(gè)過渡條件
但是現在過渡條件是空的,所以我們要自己創建一個過渡條件,回到左麵的Parameters選(xuǎn)項中,我(wǒ)們給他添加一個Triggerr(觸發(fā))條件,然後在Conditions中設置。現在Attack是一次(cì)性(xìng)的動(dòng)作,不會重複,所以這個(gè)動作播放完就會停止,所(suǒ)以我們要(yào)讓Attackk回到Idle狀態。連回去。我們會發現當點擊Trigger後,並不(bú)會馬上從Idle狀態跳轉到Atrrack狀態,這(zhè)是因為我們默(mò)認勾選了Has Exit Time
如果勾選了這個按鈕,動畫就(jiù)會(huì)默認播放完才會播放下一個動(dòng)畫,如果不勾(gōu)選,就(jiù)會馬上播放。
用代碼去控製人物攻(gōng)擊(jī)觸發條(tiáo)件。給(gěi)人物添加C#腳本。
public class controller: MonoBehaviour {
private Animator animator;
void start(){
animator = GetCompenent();
}
void Update(){
if(Input.GetMouseButtonDown(0))
{
animator.SetTrigger("New Trigger");
}
}
} //MonoBehaviour
再添加一個人物跑動的動畫並(bìng)用代碼控製(Run動畫),因為跑是一個持續性動作(zuò),當(dāng)我按住W的時候他就應該持續的跑(pǎo),所以我們要設置一個Bool類(lèi)型的條件。跑和停都是要馬上(shàng)完成(chéng),所以(yǐ)都不應該勾(gōu)選Has Exiit Time。代碼實現 :
if(Input.GetKeyDown(KeyCode.W))
{
animatorSetBool("isBool", true);
}
if(Input.GetKeyUp(KeyCode.W))
{
animatorSetBool("isBool", false);
}
- 上一篇:3DS MAX SDK插件開發(1) 2017/9/1
- 下一篇:Unity3D係統創建人(rén)物骨骼動畫模型 2017/8/9