Unity チュートリアルのタワーディフェンステンプレートを触ってみる(28)
Unity チュートリアルのタワーディフェンステンプレートを触ってみる(27)ではエージェントに追加した LootDrop について解説を行った。今回は Tower ゲームオブジェクトに追加した、SlowAffector の継承関係にある PassiveAffector の解説を行っていく。
1.その他の効果、ビジュアライザー、挙動編 – PassiveAffector.cs
PassiveAffector.cs について稚拙ながら解説
「PassiveAffector.cs」は「Assets/Scripts/TowerDefense/Affectors/PassiveAffector.cs」の指しておりスクリプトについては以下の通り。内容としては効果範囲情報の取得を行っている。
[cce_csharp]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; } } } }[/cce_csharp]
12行目 : 「public abstract class PassiveAffector : Affector, ITowerRadiusProvider」は Affector と ITowerRadiusProvider の継承とインタフェースとなっていることを指している。
Affector についてはこちらを参照してほしい。
ITowerRadiusProviderについてはこちらを参照してほしい。
内部の関数としては効果範囲、効果範囲の色、Targetter の取得を実装している。