2018年5月16日 星期三

「傘之下」開發記錄—14

除了撿取「暗之花」外,打倒敵方亦會噴出花瓣
算是半延續上一篇,這次主題是敵方AI
……這兩者其實關係不大,只是想讓文章更有連貫性才這樣寫XD ((硬來

敵方AI,主要分為兩類腳本
一個是「通用數值」,另一個是「個別行動」
這篇首先會先講「共用」的部分
每只敵人都有HP,不然打不死,所以明顯地這是個共用數值
除此之外,敵方的動畫器、碰撞器、剛體等參數亦是在這裡宣告,再在其他腳本中調用
在圖片中有看到名為Dis的參數,那是用來計算敵方和玩家的距離。畢竟每只敵人都有索敵範圍,當距離超過數值時,則執行別的動作。


上面是關於敵方自身的參數,而敵方攻擊的參數則另開一個腳本
會分開寫的原因,是因為敵方的攻擊模式不同,腳本掛上的物件亦不同
 (有的掛在攻擊觸發器中,有的掛在敵方本體身上)

攻擊強度,印象中在「玩家受傷」那篇中也輕輕提到。那是影響玩家彈飛距離的參數
這個腳本中較需要說明的是OnEnable和OnDisable的部分

依現在的程式碼,敵方在攻擊時會產生一個觸發器(SetActive),當這個觸發器碰到玩家時就會構成傷害(OnTriggerEnter)
而攻擊完畢後,SetActive = false,觸發器大小變為最小

會這樣設定,是因為自己測試時,不知為何敵方的第一擊會沒有觸發判定(可能是我設定出了問題吧_(:3」)
然後就只好讓觸發器大小重置,強制把它Reset一下


通用腳本大致上就這樣
因為這次是第一次挑戰分割腳本,所以分得很不漂亮ww
很多參數都有點硬來,有些該通用的參數也沒宣告好。總之要優化這腳本是個大工程
不過說實在的,如果沒有硬寫出來,也不懂得要怎樣優化就是XD ((經驗值up

沒有留言:

張貼留言