Unity チュートリアルのタワーディフェンステンプレートを触ってみる(28)

Unity チュートリアルのタワーディフェンステンプレートを触ってみる(27)ではエージェントに追加した LootDrop について解説を行った。今回は Tower ゲームオブジェクトに追加した、SlowAffector の継承関係にある PassiveAffector の解説を行っていく。
1.その他の効果、ビジュアライザー、挙動編 – PassiveAffector.cs
PassiveAffector.cs について稚拙ながら解説
「PassiveAffector.cs」は「Assets/Scripts/TowerDefense/Affectors/PassiveAffector.cs」の指しておりスクリプトについては以下の通り。内容としては効果範囲情報の取得を行っている。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 using TowerDefense.Agents;
using TowerDefense.Targetting;
using TowerDefense.Towers;
using UnityEngine;
namespace TowerDefense.Affectors
{
/// <summary>
/// Abstract class that is used to apply <see cref="AgentEffect"/>s to <see cref="Agent"/>s
/// </summary>
[RequireComponent(typeof(Targetter))]
public abstract class PassiveAffector : Affector, ITowerRadiusProvider
{
/// <summary>
/// Color of effect radius visualization
/// </summary>
public Color radiusEffectColor;
public Targetter towerTargetter;
/// <summary>
/// Gets or sets the attack radius
/// </summary>
public float effectRadius
{
get { return towerTargetter.effectRadius; }
}
/// <summary>
/// Gets the color used for effect radius visualisation
/// </summary>
public Color effectColor
{
get { return radiusEffectColor; }
}
/// <summary>
/// Gets the targetter
/// </summary>
public Targetter targetter
{
get { return towerTargetter; }
}
}
}
12行目 : 「public abstract class PassiveAffector : Affector, ITowerRadiusProvider」は Affector と ITowerRadiusProvider の継承とインタフェースとなっていることを指している。
Affector についてはこちらを参照してほしい。
ITowerRadiusProviderについてはこちらを参照してほしい。
内部の関数としては効果範囲、効果範囲の色、Targetter の取得を実装している。