難度:中級
介紹
前面的部分提供了有關如何創建代理和塔的說明,但沒有介紹如何實際讓它們相互射擊。這在很大程度上是因為敵人和塔都需要相同的元件和過程。我們將以下介紹這些內容。
創造射彈
在讓代理和塔有能力射擊之前,我們需要製造射彈以便他們互相射擊。他們所造成的傷害量是射彈的屬性,而不是塔或代理本身。
- 創建一個空的遊戲物件,並為其命名,用塔/代理類型,單字 projectile,(如果合適)以及它將與之關聯的級別(例如,LaserTowerProjectile_1)
- 將 Damager 元件添加到新的 Projectile 物件中
- 設置 Damage 欄位以指示應從射彈擊中的塔或代理中移除的生命值
- 如果射彈用於塔,則將 Player SimpleAlignment 可程式物件拖到 Alignment 欄位。如果是代理,請將 Enemy SimpleAlignment 可程式物件拖到 Alignment 欄位
- 將一個 HitscanAttack 元件添加到 Projectile 遊戲物件。
- 將 Delay 欄位設置為所需的秒數。
- 將一個 BallisticProjectile 元件添加到 Projectile 遊戲物件中
- 將 RigidBody 和 CapsuleCollider 元件添加到 Projectile 遊戲物件,以確保可以檢測到射彈與環境之間的碰撞
- 添加一個 ContactDestroyer 元件,它會在碰撞後摧毀射彈
- 將 SplashDamager 元件添加到 Projectile 遊戲物件
- 在 Attack Range欄位中設置效果區域的所需半徑
- 將 Damage Amount 欄位的值設置為未被射彈直接擊中的代理/塔樓造成的傷害量
以下步驟指定塔和代理當目標。入門套件塔上的 AttackAffector 元件附加在單獨的子遊戲物件,而代理的元件是附加到 Agent 預設體本身。這純粹是組織差異,並不會改變 AttackAffector 的運作方式。
- 創建 Tower 等級 / Agent 預設體的空子遊戲物件,並將其命名為 Affector。此物件將確保塔和代理可以互相射擊
- 將適當的 Launcher 元件添加到 Affector 遊戲物件
- 將 AttackAffector 元件添加到 Affector 遊戲物件
- 將射彈預製體拖入 Projectile 欄位
- 添加一個射彈點作為塔/代理發射射彈的位置
- 設置 Tower 等級 / Agent 的射速
- 創建 Tower 等級 / Agent 預設體 的空子遊戲物件,並將其命名為 Targetter。將 Targetter 元件加到於遊戲物件。此對象將確保塔能夠找到要攻擊的代理
- 將塔等級的砲塔 Transform 拖動到 Turret 欄位。設置為砲塔的物件將瞄準代理
- 設置塔等級的搜索速率
- 將塔等級的對撞機 ( Targetter Collider ) 設置為球體或膠囊
- 設置 Radius 和 Vertical Range 欄位
- 在 Hierarchy視窗口中選擇 Affector 遊戲物件,然後將 Targetter 遊戲物件拖到AttackAffector 元件的 Tower Targetter 欄位
- 將更改應用於塔預製體
- 將 HomeBaseAttacker 元件添加到 Agent 預設體
- 設置代理在到達基地後在攻擊之前應充電的秒數
塔防模板中有許多發射器。
BallisticLauncher
BallisticLauncher 使用物理學計算彈丸的軌跡並發射彈道彈丸。有關彈道彈丸的更多信息可以在遊戲活動參考說明中找到。
Fire Particle System
當塔使用此發射器發射時播放的粒子效果。
Hitscan Launcher
HitscanLauncher 會立即將 HitscanAttack 放置在目標上。然後 HitscanAttack(可選延遲)會傷害目標。
Fire Particle System
當塔使用此發射器發射時播放的粒子效果。
Super Tower Launcher
Super Tower 出現在範例專案中,它會在一定時間後自動銷毀。
Fire Particle System
當塔使用此發射器發射時播放的粒子效果。
Tower Life Span
Super Tower 自毀前的秒數。包含此欄位是為了防止強大的超級塔在遊戲中時間太長。
Fire Vector X Rotation
FireVectorXRotationAdjustment 表示 SuperTower 的砲塔根據 SuperTower 的射彈方向旋轉的量(參見遊戲活動參考說明的 WobblingHomingProjectile)。
Death()
SuperTower 用於破壞自身的功能允許設定 Super Tower 自毀功能。例如,這讓我們防止超級塔自殺。
了解 AttackAffector 元件
AttackAffector 元件允許塔或代理相互攻擊。
Projectile
當此 AttackAffector 射擊目標時產生的預製體。射彈的具體類型取決於 Launcher 元件。
Projectile Points
變換列表。將變換添加到此列表時,射彈可能會在該變換的位置產生。這對於有多個砲塔的塔或敵人非常有用。
Is Multi Attack
如果勾選,則 AttackAffector 將能夠在範圍內找到多個目標。如果未勾選,則 Affector 將一次瞄準一個敵人,直到敵人被摧毀或移出範圍。
Fire Rate
這可以控制 AttackAffector 告訴 Launcher 發射射彈的頻率。
Random Audio Source
AudioSources列表。每次 AttackAffector 觸發時都會隨機播放。
Tower Targetter
對包含 Targetter 元件的此塔等級的預製體參照 。
Targetter 持續記錄範圍內的目標數量,特別是距離目標中心最近的目標。對於反饋,它還控制砲塔模型,它是塔等級預製體的子物件,並將其對準最近的目標,以便告訴玩家那是最接近的目標。
Radius Effect Color
這會改變範圍可視化器的顏色,以顯示塔可以射擊的距離。
了解 Targetter 元件
Turret
連接到該塔等級預製體上的砲塔模型。
Turret X Rotation Range
以度為單位的值,用於確定塔可以向上和向下查看的範圍。
Only Y Turret Rotation
塔是否可繞X軸旋轉。
Search Rate
Targetter 的 SearchRate 決定選擇新的最近目標的頻率。
Idle Rotation Speed
當塔沒有射擊目標時,塔的旋轉速度有多快。
Idle Correction Time
在失去目標之後塔將返回其待機位置以秒為單位的時間。
Idle Wait Time
在失去目標之前,塔將再次開始空轉之前以秒為單位等待的時間。
Attached Collider
下面提到的 Targetter Collider 的說明。使用 Targetter Collider 欄位時會自動設置此項。
Targetter Collider Configuration
Targetter 的搜索體可以是膠囊或球體。當搜索體是球體時,可以設定半徑。當搜索體是膠囊時,膠囊的垂直範圍也可以設定。
Targetter Collider
Targetter 的搜索體是膠囊還是球體。
Radius
Targetter 的標準 Unity 單位射擊範圍。
Vertical Range
塔能夠在朝上方或下方射擊範圍。
了解 HomeBaseAttacker 元件
Home Base Attack Charge Time
這定義了代理到達關卡中最終點後到傷害玩家基地生命值之間的時間量(以秒為單位)。
沒有留言:
張貼留言