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