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