終於來到了尖刺怪的第三篇,也就是尖刺怪的最終篇,如標題今天要介紹的是尖刺怪的死亡與復活,那廢話不多說直接進入正題吧!
先前在介紹怪物的時候有說到,當怪物死亡的時候會生成小水滴,所以我們需要先做一個小水滴的Prefab,這樣就可以在怪物死亡的當下生成Waterdrop。那首先我們在小水滴的Inspector上放了兩個Collider,分別是CircleCollider2D和BoxCollider2D。
CircleCollider2D
,用來判斷主角是否經過小水滴,由於是作為範圍判斷,所以要將Is Trigger設為trueBoxCollider2D
,和地板碰撞,防止小水滴落到地圖之外接著在怪物的物件下新增一個子物件,名為dropInitPoint,是為了設定小水滴生成的位置,所以要調整它的Position
,讓水滴的生成位置能夠在怪物的正下方。
我們開始進入到程式,一樣要先宣告變數,如下圖:
bornTime
,設定間隔多少時間怪物才會復活Health Settings
,設定怪物的血量Resurrection Settings
,關於怪物復活的相關變數設定再來在怪物死亡的腳本中加入一個Dead函式,首先使用Instantiate
來生成小水滴,而這個小水滴身上還會掛另外一個腳本,叫做WaterDrop,我們在這裡跟它說WaterDrop裡的enemy_dead就是我現在正在編寫的怪物死亡腳本,之後將小水滴設為怪物的子物件,還有小水滴圖片的方向也會和怪物本身一樣,最後就是記得將怪物物件隱藏。
進到WaterDrop的腳本,加上OnTriggerEnter
,當主角經過小水滴的時候,要呼叫主角身上的ModifyWaterEnergy函式,讓主角的水量增加,此時小水滴就會消失,因此將isWaterdropFade設為true,在最後Destroy小水滴的物件。
在進到怪物死亡的腳本,現在要寫復活相關的設定,怪物復活需要等待一些時間,所以要使用前面所說的IEnumerator
協程,當等待完復活的時間後,需要做一些設定,包含:
那我們需要再設定一個函式NewBaby來呼叫RebornAfterTime,並加bornTime
放入參數裡面。
最後由於我們原先的怪物復活設定,是需要主角已離開原本怪物位置至少30才會復活,所以我們把這個設定寫在Update裡面,先判斷怪物與主角的距離並存在diff變數裡面,若確認小水滴已經消失,而且如果怪物與主角的距離有大於等於30的時候就可以呼叫NewBaby的函式,然後再將isWaterdropFade變回false,這樣就可以完成怪物的死亡與復活功能囉!
那麼尖刺怪的所有功能就已經全部介紹完畢囉!