Unity3D自帶動畫系統教程
導入人(ren)物模型,模型是不(bu)會動(dong)的,因為沒有添加(jia)動(dong)畫
首(shou)先給模(mo)型添加Animator組件
有的模(mo)型上自帶組件,是(shi)因為我們給他設置成了(le)人(ren)形動畫,如果是(shi)普通動畫就需(xu)要自己添加。添加好組件以后,我們發現上面(mian)缺(que)少了(le)一個animator controller(動畫控制器),我們需要添加一個拖進去。在controller里面添加動畫剪輯。點擊進入animator視(shi)圖(tu),找(zhao)到文件中(zhong)的Idle動(dong)(dong)畫(hua)(hua),拖進去(qu)。橘(ju)黃為(wei)默認動(dong)(dong)畫(hua)(hua)。再拖進一(yi)個攻擊動(dong)(dong)畫(hua)(hua)Atrrack,右鍵Make Transition(創(chuang)建(jian)過渡(du)),此時運行會發現動畫自動播放了,如果(guo)我(wo)們不想讓動畫自動過渡(du),我(wo)們需要給(gei)過渡(du)添(tian)加一(yi)個條(tiao)(tiao)件(jian),點擊(ji)過渡(du)線,選(xuan)項卡中有一(yi)個過渡(du)條(tiao)(tiao)件(jian)
但是(shi)(shi)現在過(guo)渡條件(jian)是(shi)(shi)空(kong)的,所以我們(men)要自(zi)己創建一(yi)個過(guo)渡條件(jian),回到左面(mian)的Parameters選項中,我們給他添加一個Triggerr(觸發(fa))條(tiao)件,然后在Conditions中設置。現在Attack是一次性的動作,不會重復,所以這個動作播放完就會停止,所以我們要讓Attackk回到Idle狀態。連回去。我們會發現當點擊Trigger后,并不會馬上從Idle狀態(tai)跳轉到Atrrack狀態(tai),這是因為我們默認勾選了Has Exit Time
如果(guo)勾選了這(zhe)個(ge)按鈕,動畫就(jiu)會(hui)(hui)(hui)默認播(bo)(bo)(bo)放完才會(hui)(hui)(hui)播(bo)(bo)(bo)放下一個(ge)動畫,如果(guo)不勾選,就(jiu)會(hui)(hui)(hui)馬上播(bo)(bo)(bo)放。
用代碼去(qu)控(kong)制人物(wu)攻擊觸發條件。給人物(wu)添加(jia)C#腳本。
public class controller: MonoBehaviour {
private Animator animator;
void start(){
animator = GetCompenent();
}
void Update(){
if(Input.GetMouseButtonDown(0))
{
animator.SetTrigger("New Trigger");
}
}
} //MonoBehaviour
再添加一個人物跑動的動畫并(bing)用代碼(ma)控(kong)制(Run動畫),因為跑是一個持續性動作,當我按住W的(de)時候(hou)他就應該持續的(de)跑,所以我們(men)要設置(zhi)一個Bool類型的條件(jian)。跑(pao)和停(ting)都是(shi)要馬上完成,所以(yi)都不(bu)應該勾選Has Exiit Time。代(dai)碼實現(xian) :
if(Input.GetKeyDown(KeyCode.W))
{
animatorSetBool("isBool", true);
}
if(Input.GetKeyUp(KeyCode.W))
{
animatorSetBool("isBool", false);
}
- 上一篇:3DS MAX SDK插件開發(1) 2017/9/1
- 下一篇:Unity3D系統創建人物骨骼動畫模型 2017/8/9
