我們已經能夠通過生成器產生敵人秦驯,這些敵人能自動尋路到達主城所在位置進行攻擊。主城被攻破后游戲結束挣棕。攻擊方已經具備译隘。
接下來是防御方了。這里洛心,咱們建立防御塔阻止敵人的進攻固耘。首先說說本例中三種防御塔的攻擊方式:
弓箭手:遠程攻擊,對敵人射出弓箭造成傷害词身,弓箭可以插在敵人身上厅目;
錘兵:群體攻擊,錘擊地面法严,原地擊飛敵人损敷,減慢敵人移動速度;
劍士:近程攻擊深啤。
那么從弓箭手開始拗馒,來做他的攻擊功能:
弓箭手攻擊時會從“槍口”處發(fā)出弓箭,所以先在弓箭手模型上創(chuàng)建一個槍口Muzzle:
槍口一Z軸指向發(fā)射方向
槍口要隨弓箭移動溯街,在Hierarchy面板中大概在這里:
為了獲取這個未知層級的子物體诱桂,也為了讓其它類也方便調用,我們先寫一個工具類苫幢,里面創(chuàng)建一個查找未知層級子物體的方法:
弓箭手的腳本中還需要拿到箭矢的預制體访诱,先把箭矢預制體放入路徑中:
為箭矢預制體創(chuàng)建一個腳本Bullet掛上去:
為了讓箭矢和其它物體可以使用對象池垫挨,我們先創(chuàng)建一個空物體韩肝,作為所有對象池的管理器。取名“PoolManager”九榔,創(chuàng)建對象池類:
其它物體需要對象池也可以調用該類的方法哀峻。
弓箭手需要有一個攻擊范圍。敵人進入該范圍后才會被認定為目標并展開攻擊哲泊。
首先將敵人都放在Enemy層剩蟀,創(chuàng)建弓箭手的腳本:
弓箭手的初始化在弓箭手創(chuàng)建時調用。
如果弓箭手已經能檢測敵人并發(fā)射箭矢切威,接下來就是箭矢的功能了育特。主要如下:
1. 飛向目標(始終面向目標,并向前飛);
2. 打到目標缰冤,調用目標受傷方法(用距離判斷是否打到)犬缨;
3. 插在目標身上(認目標做父物體,停止移動)
要讓箭矢能插在敵人身上棉浸,需要在敵人模型上創(chuàng)建一個空物體做打擊點怀薛,取名HitPos,為了效果逼真迷郑,HitPos最好放在模型骨骼上枝恋,并可以在敵人腳本中聲明一個hitPos,使用查找未知層級子物體的方法來獲任撕Α:
當弓箭手檢測到敵人創(chuàng)建箭矢時焚碌,同時將敵人信息、傷害值就漾、箭矢對象池賦給箭矢呐能,由箭矢去做接下來的工作,如傷害敵人抑堡,它的腳本可以這樣寫:
箭矢的移動速度在編輯器界面自行設定摆出,在弓箭手的攻擊方法中,就可以在創(chuàng)建箭矢的同時把相關信息賦給它:
弓箭手做完首妖,接下來是錘子兵的功能:
想象每一下都是LOL里石頭人的大招
錘子兵的功能和弓箭手非常相似偎漫。除了攻擊方式不同,其它都一樣有缆。所以我們創(chuàng)建錘子兵的腳本可以繼承自弓箭手的腳本:
除了對敵人造成傷害之外象踊,需要專門寫一個擊飛的方法,擊飛方法可以寫在錘子兵的腳本里棚壁,也可以在敵人腳本(Enemy)中寫一個被擊飛方法:
該方法是公開屬性杯矩,在錘子兵那邊調用。
然后是劍士的功能:
劍士功能最簡單袖外,但增加了一個暴擊的屬性史隆,將暴擊率代入攻擊力的計算就好,腳本也繼承自弓箭手:
是不是很簡單曼验?
好了泌射,三個人形防御塔的功能都做完了。現在正式做安放防御塔的功能鬓照,用Image搭建一個防御塔菜單UI界面熔酷,放入精靈圖片,取名“PagodaMenu”:
在PagodaMenu下創(chuàng)建三個Image做頭像:
我是直接把模型放在紅色背景板前截圖
在道路旁擺上若干的防御塔地形豺裆,將層設為Pagoda:
我們先來看下放置的過程:
通過演示拒秘,我們大概可以理清創(chuàng)建的邏輯:
1. 點擊頭像實例化一個防御塔,并顯示攻擊范圍;
2. 按住鼠標不放防御塔會跟隨鼠標移動躺酒;
3. 攻擊范圍的顏色在可放置位置顯示為綠色咙轩,其余地方為紅色;
4. 在可放置位置彈起鼠標時阴颖,會將防御塔放在地形上活喊,且同時為防御塔初始化。
根據以上的邏輯順序量愧,我們首先要讓圖片具有可點擊事件與彈起事件钾菊。為頭像Image創(chuàng)建一個腳本,引入相應接口:
然后可以從主攝像打出射線偎肃,將射線檢測點的坐標賦給防御塔煞烫,可以放在在Update中調用。攻擊范圍的顯示可以通過創(chuàng)建一個普通球形物體來實現累颂,后面在代碼中調整顏色就行了滞详。位置也跟隨射線檢測點移動,平時處于禁用狀態(tài)紊馏,只有在擺放防御塔過程中調用:
現在將所有防御塔預制體放入路徑中:
預制體名字和頭像圖片的名字相同料饥,且一一對應:
為Icon的腳本創(chuàng)建初始化方法:
彈起事件中根據條件判斷當前是否可放置防御塔,判斷邏輯放在Update中:
好的朱监,頭像功能的腳本就做完了岸啡。頭像的數量可以根據防御塔具體數量增減。我們注意到每個頭像的初始化方法沒地方調用赫编,可以創(chuàng)建一個管理類來對它們統(tǒng)一初始化巡蘸,將它掛在PagodaMenu上:
主攝像機和范圍顯示器在編輯器界面直接拖入。