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 の取得を実装している。

スポンサーリンク
%d人のブロガーが「いいね」をつけました。