【unity】AnimationEvent動畫事件實現戰鬥傷害檢測

今晚在做畢業設計,實現戰鬥的傷害檢測功能。最初的想法是在武器添加Collider,如果和怪物發生碰撞且正在播放攻擊動畫,則對怪物造成傷害。但這個方法並不靠譜,播放一次攻擊動畫,武器就和怪物發生了兩次碰撞,雖然寫多幾行代碼是有辦法實現這個功能的,但寫得太複雜並不見得是好事,而且用OnTiggerEnter實現,極有可能同時和多個怪物發生碰撞。

想一下戰鬥傷害檢測的最本質需求,即揮一下武器(播放一次動畫),對單個目標造成一次傷害,而AnimationEvent動畫事件正是爲實現這個需求量身定做的。

AnimationEvent動畫事件,簡單來說,就是在動畫播放過程中的某個時間點觸發一個方法,這個方法在動畫所在的物體的腳本中實現。一個動畫可以有多個觸發方法,但對於戰鬥傷害檢測來說,一個就夠了。


Animator和Animation都可以實現動畫事件,但具體操作方法有所差別,下面是基於Animation組件的使用方法

1、打開Animation窗口

 

2、在Asset文件夾中選中動畫,如果左上角顯示Read-Only,說明這個動畫是一個物體的子物體,是無法編輯的。

 

3、解決方法是Ctrl+D,將這個動畫複製一個,然後選中這個複製的動畫,這樣就可以添加事件了

 

 

4、右擊某個時間點添加事件

 

5、添加後選中這個事件,在Inspector面板中寫上要觸發的方法名

 

6、最後在動畫所在物體的腳本聲明觸發的方法

    void myEvent()
    {
        print("hurt");
    }

 

實現效果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章