Unity uMOBA 教學

Author: Kelvin Huang

《英雄聯盟》與《傳說對決》是電競活動的熱門遊戲,本次介紹的 Unity uMOBA 主要透過 UNET 進行多人連線的功能,不需要另外架設遊戲伺服器。

uMOBA 展示影片

首先將 uMOBA 下載並匯入遊戲專案。

 

首先透過範例瞭解 uMOBA 提供的功能,開啟 [ ] 資料夾的 場景,按下 PlAY 測試遊戲。

uMOBA v1.38 版本有遇到些問題,不過基本的遊戲玩法已經成形了。而創建人物、敵人這方面在此套件也很容易使用。

 

創建玩家角色

首先在 Asset Store 資源商店中尋找一些模型,教學範例是使用免費資源 Space Robot Kyle 進行說明(最好是自帶動作的角色,也可使用自製的角色)。

下載完成並匯入後,再下載一個動作資源包,RPG Character Mecanim Animation Pack FREE免費版本的RPG角色動作包,因為在uMOBA中範例的英雄角色沒的動作無法帶給其他角色使用(即是套用後會出現無動作的情況)。

如果說還需要更多動作,還可以下載Melee Axe Pack資源包,裡面也有一些近戰攻擊的動作。

準備好之後,可以先開啟在Project專案瀏覽器uMOBA > Scenes 中的Lobby場景來試玩遊戲,並大概了解到uMOBA的遊戲玩法和一些功能後,就可以開始來製作自己的遊戲了。

開始之前先檢查一下動畫包及Robot Kyle的動畫格式,在Project專案瀏覽器Robot Kyle > Model中,點選Robot Kyle.FBX後,在Inspector屬性編輯器中,切換到RIG分頁,更換Animation Type為Humanoid並按下Apply套用。

接著在在Project專案瀏覽器RPG Character Animation Pack > Animations 資料夾中檢查FBX檔是否都使用了Humanoid動畫格式。
有匯入Melee Axe Pack資源包的話不用再檢查,因為都是Anim檔,是可以正常使用的。
模型和動作設定完畢後,就開始建立我們的角色吧!

開啟一個新的場景,在Project專案瀏覽器uMOBA > Prefabs > Entities > Heros 中的Orc預製物件放入場地中。

再將Robot Kyle > Model > Robot Kyle.FBX放置在場地中。

並將場地上的Orc及Robot Kyle的座標都設定為0,0,0的位置,此時機器人和半獸人就會重疊在一起。


製作新的玩家角色,最快的方法就是找出uMOBA中的玩家預製物件並將其模型替換為其他模型(即是在新模型上直接套用了uMOBA角色上的元件)。

在Hierarchy場景瀏覽器中,將Orc和RobotKyte展開,將RotationFix下的b_pelvis和Orc刪除,將Robot Kyle下的Robot2和Root放置到Orc > RotationFix之下,並且將Orc更名為Robot Kyle(或依照個人需求更換名字)。

再點擊更換完成的Robot Kyle後在Inspector屬性編輯器中,將Animator元件中的Avatar變更為Robot KyleAvatar後再選取Robot Kyle的骨盆骨骼,創建一個Capsule Collider並調整為適當大小並將Is Trigger勾選。

再選擇Robot Kyle後,到Inspector屬性編輯器中的Player元件,在Components有個Collider欄位是空的,將骨盆的骨架放進去吧。

完成後新增資料夾名為Prefabs並將Robot Kyle放入此資料夾,存為預製物件。

前面有提過,動作需要重新設定,將uMOBA > Models > Entities > Orc 中的Controller動畫控制器按下Ctrl+D複製一份後,在Asset建立資料夾,名為Animator動畫控制器,並將複製後的Controller放入新增的資料夾中,並更名為RobotKyle_AnimatorController(當然名稱可以自己決定,不過在取名時盡量輸入多一點資訊,未來在整理的時候比較不會錯亂)。

雙擊RobotKyle_AnimatorController後會跳出Animartor面板,會看到此動畫控制器有包含8種動畫,依照名稱我們可以在先前匯入的動畫資源包,將相對應名字的動作先拖曳到Animator面板內。。


接著點選其中一個箭頭,看一下需要Parameters的那些數值來判定要作出的動作。
例如Drop Dead的條件就是DEAD為真的時候,邊對照邊把線取代掉,並且刪除原來的動作。

所有的來源都是從Any State出去的,所以要在Any State上點右鍵,並選擇Make Transition後拉向新的動作,並刪除原有動作,現在已經把死亡的動畫替換了。

邊對照數值,邊替換動作,將所有動作都替換完成。

最後點選每個動作的箭頭,將Can Transition To Self取消勾選,才不會一直重複撥放動作。

替換動作已經完成,將Robot Kyle的Animator替換成RobotKyle_AnimatorController並按下Apply套用預製物件,讓我們先將角色放入場景中測試吧。
在Project專案瀏覽器開啟uMOBA > Scenes 中的Lobby場景,在Hierarchy場景瀏覽器中點選LobbyManager大廳管理器,在Inspector屬性編輯器找到Lobby Manager元件,將Spawn Info展開,看到Registered Spawnble Prefabs後,點選右下角的+號並將機器人模型預製物件放上去,即可按下Play測試,已經可以選擇製作好的角色來玩了。

經測試發現,角色所有的動作都反過來了,我們先來解決此問題。
在Project專案瀏覽器中,點擊剛剛製作好的玩家角色預製物件,他的子物件RotationFix向Y軸旋轉了180度,我們將他條回0度後再按下Play測試,動作的方向就正常了。

不過我們的角色目前是空手,但是攻擊的動作又是拿武器的動作,我們必須要給角色拿武器。
我們再建立新場景,將玩家角色放置在場景中。
在Porject專案瀏覽器uMOBA > Models > Entities > Orc中的weapon_battleax.FBX放置在場景中(或其他武器也可以,例如骷髏兵的刀),到Hierarchy場景瀏覽器中,將武器放入角色的右手骨架中,並調整至適當位置。

假使想在調整時可以看見動畫的效果,可以到Mixamo > Melee Axe Pack > Animations點擊任何一個動畫後,將Inspector屬性編輯器最下方的動畫瀏覽器拉開後,將場景上的Robot Kyle放入動畫瀏覽器中,就可以即時做出調整至滿意為止。

調整完成,按下Apply套用預製物件,此時可以到uMOBA > Scenes 中的Lobby場景進行測試。
最後要把半獸人的頭像替換成機器人,在Project專案瀏覽器uMOBA > Textures資料夾中,點選任何物件按右鍵,點選Show is Explorer從檔案總管開啟資料夾。

在資料夾中找到Port_Orc.png後,複製一張一樣的圖片後更名為Port_Robot後用繪圖軟體開啟。
頭像製作完成後在Unity中,到Project專案瀏覽器點選剛剛製作的頭像圖片,在Inspector屬性編輯器中將Texture Type改為Sprite (2D and UI)後,再點選玩家角色的預製物件後在Inspector屬性編輯器中的Player元件中,往下捲動看到Other選項,將Portrait圖片更改為剛剛製作完成的Port_Robot後按下回到uMOBA > Scenes中的Lobby場景按下Play測試。



設定角色的數值

uMOBA將角色等級、數值,或學習技能模組化了,我們只需修改數值即可。
在玩家角色上Player元件中將Level選項展開,在Size中可以調整玩家的等級上限,在下方的Element成員中可以調整每一個等級的數值,像是最大生命、法力、經驗值、基礎傷害、防禦、格檔機率、爆擊機率可以做調整。


新技能製作,並套用到角色身上
技能製作的預製物件都將會放到uMOBA > Resources > Skills [keep them all in one folder, use no subfolders]資料夾中。
先在Project專案管理器uMOBA > Resources > Skills [keep them all in one folder, use no subfolders]資料夾中,並找尋一種技能按下Ctrl+D複製一份,例如我想要製作一個新遠距離攻擊技能,就先把任一種攻擊技能複製一份,這裡複製Strong Hit(Orc)強力打擊。

點擊新複製的新技能,在Inspector屬性編輯器中檢視一下有哪些可以修改的選項。

可以調整的項目很多,包括集合名稱(包含攻擊、增益、補血),描述、是否一開始就學會。
在Skill Levels選項下可以調整更多的項目,包含最大技能等級、施展時間、冷卻時間、施放範圍、攻擊範圍、法力消耗、補血量、回復法力量、增益時間、增益最大血量、法力、增益傷害、防禦力、每秒血量回復、每秒法力量回復、格擋機率、爆擊機率、技能特效、學習等級。
稍微將數值更改後,再點選玩家的預製物件,在Inspector屬性編輯器下Player元件中找到Skills, Buffs, Status Effects項目,將Skill Templates展開後,可以看到技能數量、選擇技能。

因為我們要製作的是遠距離技能,所以將Cast Range調高,不過Aoe Radius是攻擊範圍,假使調太高的話會誤傷友軍。

將做好的技能將其中一樣原本的技能取代,這裡取代的是Strong Hit(Orc),此時按下Play測試

測試結果是技能可以正常使用,不過既然是遠距離攻擊,我們可以加入一個特效,先到Asset Store中找尋一個發射子彈的特效,這裡是使用Volumetric Lines的免費資源來做範例。

下載資源後匯入,在Project專案瀏覽器VolumetricLines > Prefabs中的VolumetricLinePrefab放置在場景中,並且調整至適當大小(可將角色模型放入場景中,方便比對),再增加Skill Effect Projectile元件後將Speed減少(假如覺得太快可適當調整),再存為預製物件。

此外還有 Skill Effect Buff及Skill Effect On Target可以嘗試,只差在特效出現的地點不同。
別忘記在增加了預製物件,也必須在LobbyManager上增加新的預置物件,才會在連線中正常同步。

按下Play測試後,按下技能後即可發射雷射並造成傷害。


物品製作並讓NPC販賣
我們嘗試製作一個增加血量及法力的藥水,及一個增加各種數值的裝備。
專案瀏覽器uMOBA > Resources > Items [keep them all in one folder, use no subfolders]中,先按下Ctrl+D複製一個武器以及藥水後,名稱依個人需求更改。

先來製作新的藥水,點擊剛剛複製的藥水後,在Inspector屬性編輯器中,更改群組、最大堆疊數、購買價、販賣價,及敘述再往下看到Usage Boosts選項,可以選擇使用後是否消失、增加血量、法力值。
Equipment Boots是裝備相關的,如果想要帶著藥水就增加能力的話可以更改。

裝備製作其實和藥水製作差不多,只是將堆疊數改成1、使用後不刪除、使用了也不會增加任何數值。
所以要修改的地方就是Max Stack更改為1,敘述依個人需求更改,Equipment Boost欄位數值變更。

最後在Project專案瀏覽器uMOBA > Prefabs > Entities > Npcs 中將MerchantEvil和MerchantGood兩個陣營的商人的販賣物修改。
先點選其中一個商人,在Inspector屬性編輯器中,往下捲到找到Npc元件,在最下面有個Items for Sale項目,將Sale Items展開後,把Size更改為6,並增加剛剛建立的道具


更改完成後,按下Play測試並和商人對話,會發現新道具已經可以購買了。


更改兩方勢力的小兵
首先在Asset Store中尋找要使用於兩邊勢力的小兵模型,這裡以Cyber Soldier來做範例。

創立新場景,在Project專案瀏覽器MyAssets > CyberSoldier資料夾中的CyberSoldier.FBX放入場景中,再到uMOBA > Prefabs > Entities > Monsters資料夾內的ScarabEvil或ScarabGood其中一隻放入場地中,並將兩者的座標皆設置為(0,0,0),和玩家角色一樣進行模型替換,這裡使用ScarabGood來做範例。

將ScarabGood中的Transform物件下的所有物件刪除,再來刪除unwarp物件後,再將CyberSoldier下的物件,全部擺上至Transform之下,不過物件的旋轉值要特別調整,因為ScarabGood原本是倒下來的。
並將骨盆骨架增加一個Capsule Collider並調整適當大小及將Is Trigger開啟。


再點選小兵角色,將Animator元件中的Avatar元件更改為CyberSoldAvatar之後往下捲到,找到Moster元件,並將Collider放入骨盆骨架。

調整完成後更改為適當的名稱,並存成預製物件後,再來調整動畫控制器。
在Project專案瀏覽器uMOBA > Models > Entities > Scarab中,將Controller動畫控制器按下Ctrl+D複製一份,再更名為CyberSoldier_Controller後移動到先前建立的Animator資料夾內。
雙擊CyberSoldier_Controller後開啟Animator動畫控制器面板,小兵的控制器較簡單,只有Idle、Run、Attack、Drop Death四種狀態,和先前製作角色動畫一樣,將對應名稱的動作從先前下載的動作資源包中放入Animator動畫控制器面板內,並對照觸發條件來替換掉舊的動畫。

動作替換後,不妨可以更改狀態名字,看起來比較乾淨一點。

更換完畢後,將小兵角色的Animator更改為CyberSoldier_Controller動作就做完了,接下來要讓Good陣營可以生產機器人小兵。

開啟在Project專案瀏覽器uMOBA > Scenes中的World場景。
在先前試玩遊戲時會發現雙方會有3個地方可以生產小兵,而且間隔10秒,我們在Hierarchy場景瀏覽器中找尋MonsterSpawnMiddleGood、MonsterSpawnTopGood、MonsterSpawnBottomGood三個物件,點選其中一個後,在Inspector屬性編輯器找到Moster Spawner元件,將裡面的Moster更改為剛剛製作完成的小兵預製物件,若有需要更動生產間隔時間可以調整Interval選項。

最後在到Lobby場景,若有新的預製物件務必加入到LobbyManager物件下Lobby Manager元件的Spawn Info中,在連線時才可以同步。

增加完成後,按下Play測試,就會發現Good陣營會生產機器人小兵,動作也正常。

假使想要讓兩邊都生產機器人,可以先在外觀上做一些修改。
可以到Project專案瀏覽器MyAssets > CyberSoldier > Materials內將CyberMat.mat按下Ctrl+D複製一份,並更名為CyberMat_Evil後,再將先前製作完成的機器人小兵預製物件按下Ctrl+D複製一份後,更名為CyberSoldier_Evil並拖曳至場景上。
在Hierarchy中點選CyberSoldier_Evil > Transform > CyberSoldier物件,在到Inspector屬性編輯器中將Materials選項打開後,將剛剛複製的CyberMat_Evil拖曳進去,並展開材質面板。
展開材質面板後,將Albedo右邊的顏色更改為其他顏色,在Unity中顏色可以疊加。

顏色調整完成後,點擊CyberSoldier_Evil角色,到Inspector屬性編輯器中的Monster元件中,將Team選項更改為Evil陣營並按下Apply套用預製物件。

最後再開啟World場景,在Hierarch中找到MonsterSpawnMiddleEvil、MonsterSpawnTopEvil、MonsterSpawnBottomEvil三個物件,將Moster Spawner元件內的Moster更改為CyberMat_Evil即可儲存場景並回到Lobby場景,將Spawn Info增加CyberMat_Evil後按下Play測試。

發現兩邊小兵已經設置完成,並會互相攻擊,動作一切正常。

假使使用RPG Character Animation Pack的動作包,可能會出現一些錯誤訊息。

原因是在原本的動畫的FBX檔中,擁有事件FootR和FootL的事件,而我們並未設定並使用此事件,所以先將其刪除。
在Project專案瀏覽器RPG Character Animation Pack > Animations > Unarmed點包含動畫的FBX檔後,在Inspector屬性編輯器分頁切換至Animatios後往下捲到至看到Events選項並展開。
將會看到每一個動作都有被插入事件,我們找尋有放入Animation Controller動畫控制器中的動畫,選取後按下Delete鍵刪除即可。

注意:未選取的事件會呈現白色,已選取的事件會呈現藍色。

解決完之後,動作錯誤的訊息就消失了,不過還剩下一個關於LobbyManager尚未放入玩家預製物件的錯誤訊息,不過不用去理會,因為玩家角色的預製物件要在選角並開始後才會放入,並不是遊戲開始前就自己幫你生產玩家角色的。

目前只要將任何角色的陣營更改為Neutral時,在Play測試時怪物模型都會消失,待解決後再行製作教學。



替換場景

我們可以嘗試以現有的MOBA場景來取代目前的場景,這裡以Z MOBA Environment Art Pack資源包來範例。
先開啟一個新的場景,Unity支援多個場景全部都在同一個場景中載入。
找到Project專案瀏覽器uMOBA > Scenes中的Word場景,及Z!M.O.B.A Environment Art Pack > Demo中Demo場景,都拖曳到Hierarchy場景柳覽器中,此時包含新場景,共有三個場景同步顯示。

假使認為一直算圖資源耗損太多的話,可以在上方工具列Windows > Light > Setting打開燈光設定面板,拉到最下面將Auto Generate關閉,就不會自動算塗了。

不過此時會發現兩個地形的位置和大小好像不太一致,我們先調整到接近的大小和位置吧。
我們先點選Demo的場景中全部的東西(不包含_Main Camera),全都放入新場景內,就可以先把Demo場景先關閉了。

接下來可以將World場景一些用不到的物件刪除(不包括Spawn產生點、Camera攝影機、Canvas畫布、Fog迷霧、Merchant商人、Barracks軍營、Terrain地形),當然我們不需要那麼多盞燈光,Environment下的Light也可以刪除,不過此時可以將World場景的Main Camera拖曳至新場地,並將新場地原本的Main Camera刪除。
我們先在Hierarchy場景瀏覽器點選新場地中的Terrain地形物件,對照World中的Terrain設置常和寬,深度可以不用調整。

設定完成後,兩邊的Terrain地形長寬均會相等。
再一次選取新場景的所有物件,要將它們進行縮放至符合Terrain地形大小,使用外框工具(縮放指令右邊),可平面的對物體進行縮放。

為了方便操作可以先把攝影機及畫布(Canvas)先隱藏,把視角設定成TOP視角,並轉換成正交投影(在Top左邊的標誌)

再調整外框至和地形差不多的大小。

再使用移動工具將兩個場地重疊,記得其他軸向也需確認是否完美重疊。
確認完畢後,可將World場景內的Terrain刪除(子物件需先取出)或隱藏,如先前有隱藏Canvas請打開,確認小地圖是否正常顯示現在的地形。

確認完畢後,將World的場景全部拖曳至新場景內即可將World場景關閉。。
轉移至新場景,有幾樣東西必須設定,故保留了例如塔、小兵生產點、主堡、商人..這些已經做好的物件,只需更換模型即可。
這裡先將兩邊玩家、小兵的生產點先做變更,這兩個物件沒有模型,直接移動到定點即可。

接下來來將塔替換掉,我們先把原來的塔,和新的塔的位置先調整一下。
一般MOBA遊戲有上、中、下三條路,一條路有三座防禦塔,主堡旁會有兩個防禦塔,合計一個陣營需要11座防禦塔;而每一路擁有兩座軍營,兩個陣營合計需12座軍營;主堡一個陣營只有一座,合計兩座。。
在Z!M.O.B.A Environment Art Pack > Demo 資料夾的 Lists場景,有已經製作完畢的塔預製物件,不像Demo場景內的塔的個別部位都擺得很亂,所以必須先做整理。
在Hierarchy場景瀏覽器中,搜尋並刪除以下物件。
Tower_E
Tower_C
MagicCircle_A
Crystal_B
Crystal_A
Tower_D
Crystal_C
Vines_F
Vines_C
刪除完畢後存檔,從Project專案瀏覽器開啟Z!M.O.B.A Environment Art Pack > Demo 資料夾的 Lists場景,這裡選擇Tower_D當作主堡,Tower_C (3)當作一般的防禦塔,而軍營則使用原本uMOBA原有的。

在Hierarchy場景瀏覽器點選選擇完畢的物件後,並放入我們創建的Prafabs資料夾內存成預製物件,並更改名稱為Tower_Good以及Base_Good(或依個人需求取名)。
完成後再建立一個新場景,將新主堡和防禦塔放去上去。
再從Project專案瀏覽器uMOBA > Prefabs > Entities > Buildings資料夾內,將TowerGood和BeseGood預製物件放入場景中。
將Tower_Good和TowerGood的座標設定成一樣,而Base_Good及BaseGood也是將座標調整至一樣(可以使用Copy Component及Paste Component Values來操作),完成後會將兩種同樣功能的建築重疊在一起。

和先前一樣的,將原本防禦塔的模型替換成新的塔,不過TowerGood的模型及材質都在它本身的物件上,子物件並沒有模型,我們先來處理BaseGood的模型替換。

先將BaseGood內的B_Ancient及B_Ancient_P1刪除,並將我們的Base_Good放入BaseGood內,並更改為適當的名稱,方便辨識。

主堡已製作完成,再來就是製作一般的塔。
選擇TowerGood後,將Heroic Tower(Mesh Filter)以及Mesh Renderer元件刪除。

刪除完成後,將我們的Tower_Good放入TowerGood中,並重新命名為TowerGood_Good方便辨識。

比較特別的是BaseGood_New原本就自帶動畫,不過這裡打算在Unity中自製簡易動畫後,將原本的動畫取代掉。

在Project專案瀏覽器uMOBA > Model > Buildings > Barracks 中將Comtroller複製一份,更改名稱為Tower_Controller並放入我們先前創建的Animator資料夾中。

將Tower_Controller雙擊並開啟Animator動畫控制器面板,會發現只有Death擁有動畫,Idle內是空,代表只要製作Death動畫並取代即可。

從上方工具列 Windos > Animation開啟動畫面板。

接著點選BaseGood_New後,會發現Animation動畫面板已擁有動畫,但是都是Miss遺失狀態,我們不用理會,在左上角的death(Read-Only)動畫名稱上點擊,並選擇Create New Cilpy增加新的動畫片段,假使沒有出現此選項,將 Tower_Controller中的Drop Death刪除後再按下Create建立新的動畫即可添加新動畫。


儲存名稱為Tower_Death後,建立Animation資料夾放入後,可以來編輯動畫了。
按下Animation動畫面板中的錄製圖示,進行錄影,在0:00的位置上些微移動物件並再放為原處後,0:00的影格就已建立完成。


我希望塔被擊破後,在5秒間往下沉至看不到為止,在時間軸中按住中鍵後由右往左拖曳,可以延長時間軸,點選5:00時間軸,點選BaseGoode_New後往-Y軸拖曳,讓主堡呈現往下沉的感覺,調整完成後將錄影圖示關閉,我們就得到一個主堡往下沉的動畫了。

在Animator動畫控制器中,將Tower_Controller中將Any State和新建立的Tower_Death死亡動畫連接在一起,觸發條件為DEAD為真。

動畫的取代完畢,主要是防止在運行時因動畫無法撥放導致錯誤。
完成後將Tower_Controller放入BaseGood_New的Animator元件中後,放入我們創建的Prefa資料夾中存成預製物件。

接下來要製作Evil陣營的主堡和防禦塔,不過經過比較後,只有陣營的部分需要修改,所以我們先更改名字為BaseEvil_New和TowerEvil_New後,將Base元件中的Team更改為Evil,再存為預製物件。
再來將材質改變顏色,我們在Project專案瀏覽器中找到Z!M.O.B.A Environment Art Pack > Prefabs < Materials 資料夾中的Crystal.mat材質,按下Ctrl+D複製一份後更改名稱為Crystal_Evil.mat(或其他適當的名字)。
在Hierarchy場景瀏覽器點選TowerEvil_New > Tower_Evil(拖曳進來的塔模型) > Crystal_B (1)後,將Crystal_Evil.mat從Project專案瀏覽器中拖曳至Inspector屬性編輯器中Mesh Renderer元件中的Materials > Element0取代原本的材質,並在下面展開材質選項,將Albedo右邊的顏色進行變更,並按下Apply套用至預製物件。

我們在Project專案瀏覽器中找到Standard Assets > Effects > GlassRefraction > Materials 資料夾中的 GlassRefractive.mat材質,按下Ctrl+D複製一份後更改名稱為GlassRefractive_Evil.mat (或其他適當的名字)。
在Hierarchy場景瀏覽器點選BaseEvil_New > Base_Evil(我們拖曳進來的模型) >Crystal_C (1) 後,在Inspector屬性編輯器中Mesh Renderer元件中的Materials > Element0將剛剛複製的材質GlassRefractive_Evil.mat取代原本的材質,並將最下面的材質展開後,將Tint Color(RGB)的圖片換掉並按下Apply套用預製物件。

設置完畢後,我們打開我們先前正在編輯的地圖,先將Merchant商人和Barrack兵營設置到定位。
附註:在移動模式下,按下V鍵可以進行鎖點功能。

現在可以先放置雙方陣營的MonsterSpawn怪物生成點和PlayerSpawn了,將這些物件放在適當的位置,當然這些物件如果需要複數數量,可以按下Ctrl+D複製更多。
在Project專案瀏覽器中的Prefab資料夾中,取出兩個陣營的主堡,並放置在適當位置,完成後記得將場地上的主堡拖曳到MostarSpawn物件MosterSpawner元件的Moster Goal欄位中。


再來將防禦塔擺放至定位,以下是防禦塔擺放完畢的總數。

接著到Hierarchy中將Environment展開,會發現很多NavMesh Lane Area 的物件,將這些物件依序調整至上、中、下路的Good陣營、中間位置、Evil陣營的位置,,依照名稱來決定AI的進攻路線。

設定完成後,在上方工具列點擊Windos > Navigation開啟導航面板,並到Bake頁面按下Bake烘焙地圖的行走範圍。因為地圖的資料量不小,需要等待不少時間。

Copyright © 2024 CG Digital Corp. All rights reserved.