切換
舊版
前往
大廳
主題

[Unity]攻擊系統(一)

bangkai | 2018-02-24 15:47:21 | 巴幣 202 | 人氣 4699

之前打了兩篇,關於第三人稱的人物及攝影機移動,現在來分享整體的攻擊系統,裡面會有攻擊系統,傷害顯示這兩部分,今天先來分享傷害判定,廢話不多說就直接開始吧。
P.S 我所用的輸入方式為PS4搖桿,如果要使用自己轉換成鍵盤滑鼠。
攻擊系統
傷害判定其實不難,基本動作就是攻擊->碰撞->傷害判定->扣血,比較麻煩的部分在於傷害判定的那一塊。我們就依序做下去吧。

攻擊
攻擊動作流程:
按下攻擊鍵->動畫啟動
我們先創造一個新的腳本來控制攻擊,程式碼如下

對就這麼短,但是現在做出來會有些問題
1.會一直攻擊停不下來
2.當在執行攻擊動畫時,玩家還是可以移動。
所以我們要修改他
1.我們在攻擊腳本中新增

Animator.StringToHash(" ") 把攻擊動畫給一個ID裡面的字串為角色Animator的動作名稱
anim.GetCurrentAnimatorStateInfo(0) 是讀取現在的動畫狀態,利用nameHash讀取ID
這樣就可以在播放攻擊動畫時把開關OFF,就不會無限循環。
2.先在攻擊腳本新增兩個函數

在攻擊的動畫開始及結束的地方加上一個事件,然後在Functio裡面打入函數名稱
最後在走路腳本中新增一個判斷,在攻擊動畫開始撥放時角色就無法做移動
P.S可以把之前移動做成一個函數放在底下,之後要看也比要好看

程式碼

創作回應

迷途的仔
你家啥時有PS4搖桿呀!?
2018-03-21 18:57:24

更多創作