2019年3月13日 星期三

Unity教程--塔防模板--代理

確認過的版本:2017.2
難度:中級

介紹

現在我們有一座塔,我們需要一些東西讓塔進行防禦。這一節將解釋如何創建試圖攻擊玩家基地的敵方代理。設置舞台章節將介紹讓他們在舞台上導航的大部分過程,但如果沒有先使用必要的元件設置代理遊戲物件,我們將無法做到這一點。

請注意,我們將使用術語“代理”而不是“敵人”來歸類這些自主角色。



創建代理

第一步是進行代理設定。
  • 在 Project 視窗口中,點擊上角的 Create ,然後選擇:Create> Tower Defense> Agent Configuration
我們現在有一個代理設定,我們可以在其中設置代理的值。

接下來,我們必須創建代理遊戲物件。
  • 創建一個空的遊戲物件
  • 將遊戲物件命名為 NewAgent
  • 將 HitscanLauncher 或 BallisticLauncher 元件添加到遊戲物件。更多信息,請參閱https://unity3d.com/learn/tutorials/puroziekutos/tower-defense-template/targeting-and-firing
  • 將 AttackingAgent 或 FlyingAgent 元件添加到遊戲物件
  • Data/Alignments/Enemy 可程式物件拖到 Alignment 欄位中
  • 添加模型作為讓代理遊戲物件可視化的子物件
  • 創建代理的空的子遊戲物件,並將其命名為 Targetable。此物件將確保塔將代理視為有效的攻擊目標
  • 在 Hierarchy 視窗口中選擇代理,然後將 Targetable 拖動到代理元件的 Target Transform欄位中
請注意,添加 AttackingAgent 或 FlyingAgent 元件時會自動添加 NavMeshAgent 元件。需要NavMeshAgent 元件以確保代理可以在該等級上移動。其中定義的值指出它是如何做到的。

與塔的情況一樣,不能只將 AttackingAgent 或 FlyingAgent 元件附加到遊戲物件來設定代理。將需要一些其他元件來確保代理執行其所需的行為。
  • 添加一個適當的 Collider 元件將 Agent 的模型封裝到 NewAgent 遊戲物件中
 Collider 能夠確定代理是否被子彈擊中。
  • 將 DamageCollider 元件添加到 NewAgent 遊戲物件
了解 AgentConfiguration



Agent Name

代理的名稱。

Agent Description

描述代理及其功能的描述字串。

Agent Prefab

給 Agent 使用的包含 AttackingAgent 或 FlyingAgent 元件的預製體。

了解 AttackingAgent 和 FlyingAgent 元件





入門套件包括兩個不同的代理元件:AttackingAgent 和 FlyingAgent。如果路徑被阻,這兩個代理的反應會有所不同。

AttackingAgent 將停止並攻擊附近的塔,直到路徑可用並依賴 AttackAffector 進行操作(請參閱目標和射擊)。FlyingAgent 將直接飛越障礙物到達目的地,忽略了通常的 NavMesh 行為。

這兩個元件都擴展了 Agent 基本類,並以完全相同的方式進行配置。還可以通過創建擴展 Agent 基本類的程式來實現我們自己邏輯的代理行為。

Max Health

代理的最大生命值。

Starting Health

代理的起始生命值。

Alignment

Alignment 定義代理所在的“團隊”,以及代理所針對的目標和被誰當目標。在創建敵方代理時,通常會將其設置為敵人。

Target Transform

通常當塔或代理互相瞄準時,他們將瞄准他們的原本變換。TargetTransform 允許我們設置一個替換點來觸發。

Applied Effect Offset

如果塔在代理上應用效果,則此值允許我們調整該粒子效果的位置。

Applied Effect Scale

如果塔在代理上應用效果,則此值允許我們調整該粒子效果的大小。

沒有留言:

張貼留言