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