4-16 NPCs That Don't Hit
本章要來製作NPC!終於到了這一步了,而且製作起來非常簡單,只要善用我們已經寫好的Enemy AI來製作即可。如果不清楚以下的製作過程,請先將第四章的文章都看過唷!因為牽扯到許多重構後的細節,所以就不再一一列出相關的文章了。
首先,我沿用跟Player一樣的3D模型製作NPC,所以我在場景中選擇Player後使用Duplicate複製一個一樣的物件,然後將此複製出來的Player改名為NPC。
我不希望NPC被攻擊,所以將Layer從原本的Player改成Ignore Raycast,如此一來我的鼠標就碰不到NPC了。當然大家也可以設計出可以被攻擊的NPC,然後發出聲音說:喔!請不要打我,如果真的太過頭的話,NPC就會反擊,甚至有可能打死玩家。
再來需要將屬於玩家才會用到的功能移除,如Player Movement。
新增Enemy AI。
然後拉入Project視窗變成新的Prefab。
在場景中建立新的巡邏點,這是給NPC用的。如對建立巡邏點的方式不熟悉,請先看以前的文章唷。
4-12 Enemy AI Behaviour
然後建立一個新的武器,取名為NPC None,如果有人對這一步驟不清楚,也請先將武器系統的文章都看完唷!
然後回到NPC的Weapon System的設定,Base Damage設為0,Current Weapon Config設為NPC None,Critical Hit Chance設為0,避免發動致命一擊的粒子特效。
Enemy AI的設定中,請大家自己調整Attack Radius跟Chase Radius吧,請將Attack Radius當作是跟玩家對話時的距離,Chase Radius則當作發現玩家的距離。Patrol Path則放入剛剛我們額外新增的巡邏點。
設定好以後,執行遊戲試看看吧。首先會看見NPC繞著巡邏點在跑步。
靠近NPC後,NPC便會跑向玩家,並在一個適當的距離停下來。
首先,我沿用跟Player一樣的3D模型製作NPC,所以我在場景中選擇Player後使用Duplicate複製一個一樣的物件,然後將此複製出來的Player改名為NPC。
我不希望NPC被攻擊,所以將Layer從原本的Player改成Ignore Raycast,如此一來我的鼠標就碰不到NPC了。當然大家也可以設計出可以被攻擊的NPC,然後發出聲音說:喔!請不要打我,如果真的太過頭的話,NPC就會反擊,甚至有可能打死玩家。
Tag的部分也必須從Player改成Untagged,Main Camera才不會看錯地方唷!
再來需要將屬於玩家才會用到的功能移除,如Player Movement。
移除Special Abilities。
新增Enemy AI。
然後拉入Project視窗變成新的Prefab。
在場景中建立新的巡邏點,這是給NPC用的。如對建立巡邏點的方式不熟悉,請先看以前的文章唷。
4-12 Enemy AI Behaviour
然後建立一個新的武器,取名為NPC None,如果有人對這一步驟不清楚,也請先將武器系統的文章都看完唷!
NPC None的設定可如下,將Weapon Prefab以及Grip Transform都設定為NPCNoneGripPosition,這樣就不會在NPC手上顯示任何武器了。Attack Animation選擇None,或者大家也可以選擇其他動畫,如『說話』時使用的動畫,NPC走到玩家面前後就會自動變成說話的動畫,這也滿不錯的不是嗎?
Max Attack Range設為0,Additional Damage設為0。Projectile都不用設定。
Enemy AI的設定中,請大家自己調整Attack Radius跟Chase Radius吧,請將Attack Radius當作是跟玩家對話時的距離,Chase Radius則當作發現玩家的距離。Patrol Path則放入剛剛我們額外新增的巡邏點。
設定好以後,執行遊戲試看看吧。首先會看見NPC繞著巡邏點在跑步。
靠近NPC後,NPC便會跑向玩家,並在一個適當的距離停下來。
留言
張貼留言